<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 二進(jìn)制數折半查找算法在DSP上的實(shí)現

二進(jìn)制數折半查找算法在DSP上的實(shí)現

作者: 時(shí)間:2010-12-22 來(lái)源:網(wǎng)絡(luò ) 收藏

sub * ;與AR3所指的存儲單元的數據相減

bcnd nothere , LT ;ACC值小于0,要的數據不在本數列中

rptd nothere-1

bend found,EQ ;打到數據

xc 1, GT ;若ACC中的數據較大

mar *0+, AR0 ;

xc 1, LT ;若ACC中的數據較小

mar *0-, AR0 ;

mar *BR0+, AR3 ;空間減半

lacc LOOK

sub *

;***********************

;未找到,將ACC置0后返回

;***********************

nothere retd

zac

nop

;***********************

;找到數據,將數據地址存放在A(yíng)CC中返回

;***********************

found ldp #0

apl #0fffeh,PMST ;復位PMST位

retd

lamm AR3 ;存數據地址

nop

3 輔助說(shuō)明

程序中較為詳細的介紹了每個(gè)步驟所需完成的功能,下面就一些關(guān)鍵的地方進(jìn)行一些說(shuō)明。

(1)程序如果找到的數據則返回數據所在的地址,未找到則送0至ACC寄存器。

(2)程序中的mar BR0+,AR3是將當前AR(輔助寄存器)指定的數據存儲器的內容按逆向進(jìn)位方式加AR0的內容。由于在該指令前有一條mar*,AR0指令,這條指令指定了下一條指令的輔助寄存器。因此在執行MAR BR0+,AR3時(shí),實(shí)際上是輔助寄存器AR0與自身逆向相位相加:

其結果是數據為原來(lái)的一半。實(shí)際上這條指令確定了折半查找中的“中間位置”。

(3)samm BRCR指令程序執行是是與rptp nothere-1指令配合使用的。Samm指令的功能是將循環(huán)次數的值(這里是11)存放在BRCR中。BRCR(Block Repeat Counter Register)是個(gè)16位的寄存器,用于存放程序塊重復操作的次數。Rptp指令是重復操作指令,它的功能是重復執行下一條指令到該指令指定的地址之內的程序代碼,重復執行的次數由brcr決定。在上面的程序中,RPTR指令指定的地址是nothere-1,也就是說(shuō):重復執行的程序代碼從bcnd found直到nthere的前一指令Sub*。

xc指令的用法如下:

xc K[,COND1][COND2][,…]

指令中的K=1或2。COND1、COND2是條件。xc指令功能是在條件滿(mǎn)足的情況下,執行該指令下面的K條指令,K為1,則執行一條指令,K為2則執行兩條指令。條件不滿(mǎn)足就執行K條NOP指令。

(4)該源程序是采用TMS320C5X的指令集編寫(xiě)的,如果是TMS320C5X系列的,則可以直接將上面給出的程序作為一個(gè)子程序來(lái)使用。而對于TMS320C2XX系列的來(lái)說(shuō),由于TMS320C5X的指令對TMS320C2XX的指令是向下兼容的,所以在編寫(xiě)TMS320C2XX的折半查找程序時(shí)應作一些修改,比如前面提到的程序中的samm指令,在TMS320C2XX指令集中就沒(méi)有。這樣,如果希望用TMS320C2XX來(lái)本例中的samm語(yǔ)句 功能,則可以將重復操作的次數存放在內部的RAM中,再配合TMS320C2XX循環(huán)指令來(lái)完成samm與rptp指令的功能。但這樣做將導致程序執行效率的降低。也可以認為T(mén)MS320C2XX的數據處理能力較TMS320C5X為弱,其原因主要是兩者指令集的差異。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>