<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ò ) 收藏

折半是采用跳躍躍方式先將順序數列中的“中間值”與所查詢(xún)值進(jìn)行比較,然后按照比值大于或小于“中間值”來(lái)判斷所數的甩在區域。文章給出了將折半應用于數字信號處理器上以的一種具體方法。并給出了采用這種方法的軟件程序。

本文引用地址:http://dyxdggzs.com/article/151158.htm

關(guān)鍵詞:折半查找 二進(jìn)制

1 折半查找的基本原理

近十幾年來(lái),隨著(zhù)各類(lèi)集成化單片數字信號處理器(,Digital Signal Processor)性能的不斷改時(shí),相慶的軟件和開(kāi)發(fā)工具日臻完善,價(jià)格也迅速下降。它們所具有的功能強、集成度高、應用靈活及性能價(jià)格比高的優(yōu)點(diǎn)使其信息處理(如語(yǔ)音與圖像各種的處理)、通信、多媒體、綜合網(wǎng)絡(luò )、控制、消費電子、醫療設備、測試與儀器等諸多領(lǐng)域得到了極為廣泛的。有一種看法認為:?jiǎn)纹瑱C是事物處理型的處理器,如開(kāi)關(guān)的通斷或邏輯操作等;數字信號處理器是數據處理型的處理器,如進(jìn)行大量的包括FFT在內的數據運行等。這種看法在某種程序上是有一定道理的。一般地說(shuō),應用系統要處理的數據多、運算量大而且實(shí)時(shí)性要求較高,研究DSP本身(包括硬件方面和軟件方面)的優(yōu)勢對快速有效地執行某種有著(zhù)重要的實(shí)用價(jià)值。

查找是智能系統經(jīng)常用到的操作,查找的方法有多種,如順序查找、折半查找和分塊查找等。在這些方法中,如果按順序存儲結構組織的查找表中的所有數據元素按關(guān)鍵字有序,則可以執行折半查找(或稱(chēng)二分查找)。它的基本思想是:由于查找表中的數據按關(guān)鍵字有序(假設遞增有序),則在查找時(shí)不必逐個(gè)順序比較,而可以采用跳躍式方式先與“中間位置”的記錄關(guān)鍵字比較,若相同,則查找成功,若給定值大于“中間位置”的關(guān)鍵字,則在后半部分進(jìn)行折半查找,否則在前半部進(jìn)行折半查找。

2 折音查找算法在DSP上的

二進(jìn)制折半查找算法(Binary Search Algorithm)在DSP上實(shí)現并不難,但是一般查找程序都未能充發(fā)利用DSP內部先進(jìn)的結構和指令集,從而使得程序運行的時(shí)間未能縮至最短。這在某些時(shí)候不會(huì )防礙系統效率,但在系統數據量較大而且實(shí)時(shí)性要求較高的情況下,則必須盡一切可能提高程序的效率。本文以TMS320C50為例給出了一個(gè)二進(jìn)制查找算法的子程序,該程序可使系統的查找效率得到較大提高。

程序中充分利用了TMS320C50的位反址尋址指令,該指令可以在每一個(gè)測試過(guò)程中使搜尋的工作減半并釋放累加器以進(jìn)行其它工作。此外,該程序利用了條件執行指令(XC),而不是使用傳統的條件轉換指令,這樣一來(lái)便節省了指令周期并提高了效率。具體的TMS320C50的指令集可以參考其它文獻[1]。

本文介紹的二進(jìn)搜尋程序是在有序狀態(tài)下進(jìn)行的。它假設表格中的數據按由低到高的次序排列,最大數在存儲器中的地址最大。當然,反之(最小數在地址的最高位)亦是如此。此外,程序還假設數據中的最大個(gè)數是2的冪次方,在下面給出的源程序中個(gè)數2 11個(gè)。

TMS320C50的源程序:

.bss NTABLE,800h ;2的11次冪的數據空間(按由低到高排列)

.bss LOOK,1 ;要查找的數

.mmregs

.text

.

.

.

call bsearch

.

.

.

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

;二進(jìn)制查找子程序

;程序名:binsearch

;入口參數: (ACC)所要查找的

;出口參數:(ACC)所要查找的的地址(數據被找到)

(ACC)=0(數據未找到)

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

bin-search lar AR0,#0800h ;AR0數據的總數目

mar *,AR0

mar *BR0+ ,AR3 ;總數目的一半

lar AR3, #NTABLE;AR3指向數更的開(kāi)始

lacl #11 ;重復2的N次方,數列數據的個(gè)數為2的N次方

samm BRCR ;重復次數存放在BRCR中

ldp #LOOK

lace LOOK ;要查找數據存放在A(yíng)CC中


上一頁(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>