




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第三章TMS320C54x的指令系統(tǒng)3.1尋址方式3.2TMS320C54x指令的表示方法3.3TMS320C54x的指令系統(tǒng)小結3.1尋址方式3.1.1立即尋址3.1.2絕對尋址3.1.3累加器尋址3.1.4直接尋址3.1.5間接尋址3.1.6存儲器映象寄存器尋址3.1.7堆棧尋址返回首頁表3-1尋址指令中用到的縮寫符號及其含義縮寫符號含義Smem16位單數據存儲器操作數Xmem在雙操作數指令及某些單操作數指令中所用的16位雙數據存儲器操作數,從DB總線上讀出Ymem在雙操作數指令中所用的16位雙數據存儲器操作數,從CB總線上讀出;在讀同時并行寫的指令中表示寫操作數dmad16位立即數——數據存儲器地址(0~65535)pmad16位立即數——程序存儲器地址(0~65535)PA16位立即數——I/O口地址(0~65535)src源累加器(A或B)dst目的累加器(A或B)lk16位長立即數3.1.1立即尋址用于初始化,指令中包括了立即操作數。一條指令中可對兩種立即數編碼,一種是短立即數(3、5、8或9位),另一種是16位的長立即數。立即數尋址指令中在數字或符號常數前面加一個“#”號,來表示立即數。例如:把立即數80H裝入累加器A,其正確的指令為:LD#80H,A如果漏掉了“#”號,指令LD80H,A就變成了把地址80H單元中的數裝到累加器A中去。返回本節(jié)3.1.2絕對尋址1數據存儲器(dmad)尋址2程序存儲器(pmad)尋址3端口地址(PA)尋址4長立即數*(lk)尋址1.數據存儲器(dmad)尋址數據存儲器尋址使用符號(符號地址)或一個表示16位地址的立即數來指明尋址的數據存儲單元的16位絕對地址。使用數據存儲器尋址的指令有:
MVDKSmem,dmad MVDMdmad,MMRMVKDdmad,Smem MVMDMMR,dmad例如:MVKDSMAPLE,*AR5;2程序存儲器(pmad)尋址程序存儲器(pmad)尋址使用符號(符號地址)或一個表示16位地址的立即數來給出程序空間的地址。使用程序存儲器尋址的指令有:FIRSXmem,Ymem,pmad MACDSmem,pmad,srcMACPSmem,pmad,src MVDPSmem,pmadMVPDpmad,Smem例如,MVPDTABLE,*AR7;例PORTR05,INDAT;INDAT.equ60H
I/OMemoryDataMemory例PORTWOUTDAT,5H;OUTDAT.equ087H
I/OMemoryDataMemory4長立即數*(lk)尋址長立即數*(lk)尋址用于所有支持單數據存儲器操作數(Smem)的指令。長立即數*(lk)尋址使用一個符號(符號地址)或一個表示16位地址的立即數來指定數據存儲空間的一個地址。例如,把數據空間中地址為BUFFER單元中的數據傳送到累加器A,指令可寫為:LD*(BUFFER),A返回本節(jié)3.1.3累加器尋址累加器尋址是用累加器中的數值作為一個地址讀寫程序存儲器。共有兩條指令可以采用累加器尋址:
READASmemWRITASmem例READADAT6;DAT6.equ0206H
ProgramMemoryDataMemory例4.44
WRITADAT5;DAT5.equ1905H
ProgramMemoryDataMemory返回本節(jié)3.1.4直接尋址數據存儲器地址(dma)的低7位作為地址偏移量,結合由數據頁指針DP或堆棧指針SP給出高9位基地址,共同形成16位的數據存儲器地址。使用這種尋址方式,用戶可在不改變DP或SP的情況下,對一頁內的128個存儲單元隨機尋址。數據存儲器地址(dma)的低7位放在指令字中。直接尋址的代碼格式為:位名稱功能15~8操作碼指令的操作碼7II=0表示指令使用的尋址方式為直接尋址6~0數據存儲器地址指令的數據存儲器地址偏移表3-1直接尋址的各位說明表3-1直接尋址的各位說明
DP或SP都可以與dmad偏移相結合來產生實際地址。位于狀態(tài)寄存器ST1中的編譯方式位(CPL)決定選擇采用哪種方式來產生實際地址。CPL=0時,dmad域與9bit的DP域相結合形成16bit的數據存儲器地址;CPL=1時,dmad域加上(正偏移)SP的值形成16bit的數據存儲器地址。圖3-1DP作為基地址的直接尋址方式圖3-2SP作為基地址的直接尋址方式
直接尋址的指令書寫格式為在變量前加一個@,或者用一個dmad來設定偏移地址。
下面舉例說明:RSBXCPL;CPL=0,使用DPLD#3,DP ;設置當前頁面為3LD@x,A ;將x值加載到累加器ALD#4,DP ;設置當前頁面為4,y所在的頁面ADD@y,A ;將y值加到累加器A返回本節(jié)3.1.5間接尋址TMS320C54x有8個16位輔助寄存器(AR0~AR7)、通過一個輔助寄存器中的16位地址可以訪問64K字數據空間中的任意單元,同時可以預調整或修改輔助寄存器值,完成循環(huán)尋址和位碼倒序尋址等特殊功能;兩個輔助寄存器算術運算單元(ARAU0和ARAU1),它們與8個輔助寄存器一起完成16位無符號數算術運算。
1單操作數尋址單數據存儲器操作數間接尋址指令的格式如下:位名稱功能15~8操作碼指令的操作碼7II=1表示指令使用的尋址方式為間接尋址6~3MOD間接尋址的類型2~0數據存儲器地址定義尋址所使用的輔助寄存器表3-2單操作數間接尋址的各位說明2~0位:3位輔助寄存器域,它定義了尋址所使用的輔助寄存器。ARF由狀態(tài)寄存器ST1中的兼容方式位CMPT來決定。
CMPT=0:標準方式。ARP始終設置為0,不能修改,ARF來確定輔助寄存器。CMPT=1:兼容方式。ARP=0,ARF來確定輔助寄存器,反之亦然。
表3-3列出了單數據存儲器(Smem)操作數間接尋址類型。表3-3單數據存儲器操作數間接尋址類型例MVKD1000H,*+AR5DataMemory(1)循環(huán)尋址
在卷積、相關和FIR濾波器等算法中,都需要在存儲器中設置一個循環(huán)緩沖器,循環(huán)緩沖器實現的關鍵是循環(huán)尋址的實現。循環(huán)緩沖器大小寄存器(BK)的內容確定了循環(huán)緩沖器的大小。長度為R的緩沖器必須從N位地址的邊界開始(即循環(huán)緩沖器基地址的N個最低有效位必須為0),N應滿足2N>R的最小整數。
循環(huán)緩沖區(qū)的有效基地址(EFB)就是用戶選定的輔助寄存器(ARx)的低N位置0后所得到的值,循環(huán)緩沖區(qū)的的尾地址(EOB)是通過用BK的低N位代替ARx的低N位得到的。循環(huán)緩沖區(qū)的指針index就是ARx的低N位,step就是加到輔助寄存器或從輔助寄存器中減去的值。循環(huán)尋址方框圖如圖3-3。3-3循環(huán)尋址的框圖循環(huán)尋址的算法為:if0≤index+step≤BK;index=index+step.elseifindex+step≥BK;index=index+step-BK.elseifindex+step<0;index=index+step+BK.舉例:
一個循環(huán)緩沖區(qū)大小BK=N=6,AR1=0060H,用*AR1+%間接尋址。第一次尋址后,AR1=0061H;第二次尋址后,AR1=0062H;….;第六次尋址后,AR1指向0066H,再按照BK的值6取模,此時,AR1又指向0060H單元(前面5次按照BK取模時,AR1的值不變)。(2)位碼倒序尋址功能
位碼倒序尋址提高了FFT等算法的效率。在這種尋址方式中,AR0存放的整數N是FFT點數的一半。一個輔助寄存器指向一個數據存放的物理單元,當使用位倒序尋址把AR0加到輔助寄存器中時,地址以位倒序的方式產生,即進位是從左向右,而不是通常的從右向左。
例如:AR0=00001010B,AR2=01100110B,如執(zhí)行*AR2+0B尋址功能,也就是(01100110)+(0001010),結果AR2=01101101B。應注意,計算是采用從左到右運算的。以16點FFT為例,其運算結果的順序為X(0)、X(8)、X(4)、…、X(15),如表3-3所示。表3-3位倒序尋址2雙操作數尋址雙數據存儲器操作數間接尋址類型為*ARx、*ARx-、*ARx+、*ARx+0%。所用輔助寄存器只能是AR2、AR3、AR4、AR5。其特點是:占用程序空間小,運行速度快,在一個機器周期內通過兩個16位數據總線(C和D)讀兩個操作數。返回本節(jié)3.1.6存儲器映象寄存器尋址存儲器映象寄存器尋址用于修改存儲器映象寄存器(MMR)中的內容,而不影響當前數據頁指針DP和當前堆棧指針SP。由于這種方式不需要修改DP和SP,對寄存器的寫操作開銷最小。存儲器映象寄存器尋址可用于直接尋址和間接尋址。共8條指令能使用存儲器映射寄存器的尋址方式:
*LDMMMR,dst*MVDMdmad,MMR*MVMDMMR,dmad*MVMMMMRx,MMRy*POPMMMR*PSHMMMR*STLMsrc,MMR*STM#1k,MMR例LDMAR4,A
返回本節(jié)3.1.7堆棧尋址當發(fā)生中斷或子程序調用時,系統(tǒng)堆棧自動保存PC值。堆棧也可以用于保存和傳遞其他數據。C54xDSP處理器使用16位的存儲器映象寄存器——堆棧指針(SP)對堆棧進行尋址,SP總是指向壓入堆棧的最后一個數據。有4條使用堆棧尋址的指令:PSHD把一個數據存儲器數據壓入堆棧;PSHM把一個存儲器映象寄存器中的值壓入堆棧;POPD從堆棧中彈出一個數據至數據存儲器單元;POPM從堆棧中彈出一個數據至存儲器映象寄存器。00010010x10011010001010110操作前的堆棧和SP0011SPx200010010x10011010001010110操作后的堆棧和SP0010SP入棧時,先減SP再壓入數據出棧時,先彈出數據再減SP返回首頁3.2TMS320C54x指令的表示方法表3-4指令系統(tǒng)中的符號和縮寫返回首頁3.3TMS320C54的指令系統(tǒng)3.3.1算術運算指令3.3.2邏輯運算指令3.3.3程序控制指令3.3.4加載和存儲指令返回首頁3.3.1算術運算指令C54x的算術運算指令包括加法指令、減法指令、乘法指令、乘累加指令與乘法減法指令、雙字/雙精度運算指令及專用指令。分別如表3-5、表3-6、表3-7、表3-8、表3-9、表3-10所示。1.加法指令如果目的累加器dst被指定,則結果存放在dst中;如果沒有被指定,則結果存放在源累加器src中。移位操作時,正數為左移位,左移位低位添0,負數為右移位,高位受SXM位影響。如果SXM=1,則高位進行符號擴展;如果SXM=0,則高位清零。。表3-5加法指令
【例1】ADD*AR3+,14,A
指令執(zhí)行前
指令執(zhí)行后A0000001200HA0005401200HC1C0AR30100HAR30101HSXM1SXM1數據存儲器
0100H1500H0100H1500H【例2】ADDA,-8,B
指令執(zhí)行前指令執(zhí)行后A0005401200H0005401200HB0000001800H0000055812C10【例3】ADD#4568H,8,A,B
指令執(zhí)行前
指令執(zhí)行后A0000001200HA0000001200HB000000
1800HB0000457A00HC1C02減法指令TMS320C54x中減法指令有許多,具體說明見表3-6。在TMS320C54x中,沒有專門的除法指令,要實現除法運算一般有兩種方法:一種方法是用乘法進行,如要除以某個數,可以先求出該數的倒數,再乘以其倒數;另一種方法是用SUBC指令,再重復16次減法運算,可實現兩個無符號數的除法運算。減法指令中狀態(tài)位與加法指令中的基本相同。表3-6減法指令【例4】SUB#12345,8,A,B
指令執(zhí)行前
指令執(zhí)行后A0000001200HA0000001200HB0000001800HBFFFFCFD900HCXC0SXM1SXM1
【例5】
RSBXCPL;CPL=0,使用DP指針
LD#8,DP ;使頁面指針DP=8,直接尋址高9位LD#0006H,A ;加載A累加器SSBXC ;置借位位C為1SUBB@5,A;完成帶借位的減法運算,@5直接尋址的低9位,數據地址=0405H。3乘法指令
TMS320C54x中有大量的乘法運算指令,其結果都是32位,放在A或B累加器中,如表3-7所示。乘數在TMS320C54x的乘法指令中的使用很靈活,可以是T寄存器、立即數、存儲單元以及A或B累加器的高16位。表3-7乘法指令【例6】實現整數乘法。LD#0030H,A ;將0030H裝入累加器ASTM#0100H,AR2 ;AR2=0100HST#2000H,*AR2 ;(AR2)=2000HRSBXFRCT ;清FTCT標志位,準備整數乘LD#2,DP ;DP=002HLD@0,T;將AR2中的內容2000H裝入T寄存器MPY#-2,A;完成2000H與0FFFEH相乘,結果放入A累加器(32位),;A=FFFFFFC000H4乘加和乘減指令
乘加指令完成一個乘法運算,將乘積再與源累加器的內容相加。指令中使用R后綴的,其運算結果要進行湊整。乘減指令完成從累加器B或源累加器src或目的累加器dst中減去T寄存器或一個操作數與另一個操作數的乘積,結果存放在累加器B或dst或src中。表3-8是對乘加、乘減指令的說明。表3-8乘加和乘減指令
【例7】MAC#345H,A,B
指令執(zhí)行前
指令執(zhí)行后A0000001000HA0000001000HB0000000000HB00000D2400HT0400HT0400HFRCT0FRCT0乘法器結果不用左移,D1400H【例8】MAC#345H,A,B
指令執(zhí)行前
指令執(zhí)行后A0000001000HA0000001000HB0000000000HB00001A3800HT0400HT0400HFRCT1FRCT1乘法器結果左移1位,1A2800H【例9】MACR*AR3+,*AR4+,A,B
指令執(zhí)行前
指令執(zhí)行后A0000001000HA0000001000HB0000000004HB000C4C0000HT0008HT5678HFRCT1FRCT1AR30100HAR30101HAR40200HAR40201H數據存儲器
0100H5678H0100H5678H0200H1234H0200H1234H表3-9雙精度(32位操作數)指令表3-10專用指令返回本節(jié)3.3.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒精檢測儀行業(yè)直播電商戰(zhàn)略研究報告
- 高純金屬有機化合物(MO源)行業(yè)直播電商戰(zhàn)略研究報告
- 透水磚行業(yè)直播電商戰(zhàn)略研究報告
- 鋼鐵制非鉸接鏈行業(yè)直播電商戰(zhàn)略研究報告
- 鋼結構行業(yè)直播電商戰(zhàn)略研究報告
- 企業(yè)合伙經營運作合同標準文本
- 農田ba地合同標準文本
- 公寓租賃房屋合同樣本
- 出租高壓水炮合同樣本
- 出售水庫山林合同標準文本
- 自然辯證法知到課后答案智慧樹章節(jié)測試答案2025年春浙江大學
- DB36T 1532-2021百香果栽培技術規(guī)程_(高清版)
- 2021新蘇教版科學四年級下冊7.太陽教案
- 第二節(jié)歐洲西部
- 高分子化學第六章_離子聚合
- 一年級100道口算題
- 天貓?zhí)詫毜赇佭\營每日巡店必做的事
- 拌合站驗收指南
- 護士資格(執(zhí)業(yè))證書遺失補辦申請表
- 上海高考詞匯手冊及時雨QR
- 壓力容器基礎知識
評論
0/150
提交評論