版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第三章TMS320C54x的指令系統(tǒng)3.1尋址方式3.2TMS320C54x指令的表示方法3.3TMS320C54x的指令系統(tǒng)小結(jié)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位單數(shù)據(jù)存儲器操作數(shù)Xmem在雙操作數(shù)指令及某些單操作數(shù)指令中所用的16位雙數(shù)據(jù)存儲器操作數(shù),從DB總線上讀出Ymem在雙操作數(shù)指令中所用的16位雙數(shù)據(jù)存儲器操作數(shù),從CB總線上讀出;在讀同時并行寫的指令中表示寫操作數(shù)dmad16位立即數(shù)——數(shù)據(jù)存儲器地址(0~65535)pmad16位立即數(shù)——程序存儲器地址(0~65535)PA16位立即數(shù)——I/O口地址(0~65535)src源累加器(A或B)dst目的累加器(A或B)lk16位長立即數(shù)3.1.1立即尋址用于初始化,指令中包括了立即操作數(shù)。一條指令中可對兩種立即數(shù)編碼,一種是短立即數(shù)(3、5、8或9位),另一種是16位的長立即數(shù)。立即數(shù)尋址指令中在數(shù)字或符號常數(shù)前面加一個“?!碧枺瑏肀硎玖⒓磾?shù)。例如:把立即數(shù)80H裝入累加器A,其正確的指令為:LD#80H,A如果漏掉了“?!碧?,指令LD80H,A就變成了把地址80H單元中的數(shù)裝到累加器A中去。返回本節(jié)3.1.2絕對尋址1數(shù)據(jù)存儲器(dmad)尋址2程序存儲器(pmad)尋址3端口地址(PA)尋址4長立即數(shù)*(lk)尋址1.數(shù)據(jù)存儲器(dmad)尋址數(shù)據(jù)存儲器尋址使用符號(符號地址)或一個表示16位地址的立即數(shù)來指明尋址的數(shù)據(jù)存儲單元的16位絕對地址。使用數(shù)據(jù)存儲器尋址的指令有:
MVDKSmem,dmad MVDMdmad,MMRMVKDdmad,Smem MVMDMMR,dmad例如:MVKDSMAPLE,*AR5;2程序存儲器(pmad)尋址程序存儲器(pmad)尋址使用符號(符號地址)或一個表示16位地址的立即數(shù)來給出程序空間的地址。使用程序存儲器尋址的指令有: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長立即數(shù)*(lk)尋址長立即數(shù)*(lk)尋址用于所有支持單數(shù)據(jù)存儲器操作數(shù)(Smem)的指令。長立即數(shù)*(lk)尋址使用一個符號(符號地址)或一個表示16位地址的立即數(shù)來指定數(shù)據(jù)存儲空間的一個地址。例如,把數(shù)據(jù)空間中地址為BUFFER單元中的數(shù)據(jù)傳送到累加器A,指令可寫為:LD*(BUFFER),A返回本節(jié)3.1.3累加器尋址累加器尋址是用累加器中的數(shù)值作為一個地址讀寫程序存儲器。共有兩條指令可以采用累加器尋址:
READASmemWRITASmem例READADAT6;DAT6.equ0206H
ProgramMemoryDataMemory例4.44
WRITADAT5;DAT5.equ1905H
ProgramMemoryDataMemory返回本節(jié)3.1.4直接尋址數(shù)據(jù)存儲器地址(dma)的低7位作為地址偏移量,結(jié)合由數(shù)據(jù)頁指針DP或堆棧指針SP給出高9位基地址,共同形成16位的數(shù)據(jù)存儲器地址。使用這種尋址方式,用戶可在不改變DP或SP的情況下,對一頁內(nèi)的128個存儲單元隨機尋址。數(shù)據(jù)存儲器地址(dma)的低7位放在指令字中。直接尋址的代碼格式為:位名稱功能15~8操作碼指令的操作碼7II=0表示指令使用的尋址方式為直接尋址6~0數(shù)據(jù)存儲器地址指令的數(shù)據(jù)存儲器地址偏移表3-1直接尋址的各位說明表3-1直接尋址的各位說明
DP或SP都可以與dmad偏移相結(jié)合來產(chǎn)生實際地址。位于狀態(tài)寄存器ST1中的編譯方式位(CPL)決定選擇采用哪種方式來產(chǎn)生實際地址。CPL=0時,dmad域與9bit的DP域相結(jié)合形成16bit的數(shù)據(jù)存儲器地址;CPL=1時,dmad域加上(正偏移)SP的值形成16bit的數(shù)據(jù)存儲器地址。圖3-1DP作為基地址的直接尋址方式圖3-2SP作為基地址的直接尋址方式
直接尋址的指令書寫格式為在變量前加一個@,或者用一個dmad來設(shè)定偏移地址。
下面舉例說明:RSBXCPL;CPL=0,使用DPLD#3,DP ;設(shè)置當(dāng)前頁面為3LD@x,A ;將x值加載到累加器ALD#4,DP ;設(shè)置當(dāng)前頁面為4,y所在的頁面ADD@y,A ;將y值加到累加器A返回本節(jié)3.1.5間接尋址TMS320C54x有8個16位輔助寄存器(AR0~AR7)、通過一個輔助寄存器中的16位地址可以訪問64K字?jǐn)?shù)據(jù)空間中的任意單元,同時可以預(yù)調(diào)整或修改輔助寄存器值,完成循環(huán)尋址和位碼倒序?qū)ぶ返忍厥夤δ?;兩個輔助寄存器算術(shù)運算單元(ARAU0和ARAU1),它們與8個輔助寄存器一起完成16位無符號數(shù)算術(shù)運算。
1單操作數(shù)尋址單數(shù)據(jù)存儲器操作數(shù)間接尋址指令的格式如下:位名稱功能15~8操作碼指令的操作碼7II=1表示指令使用的尋址方式為間接尋址6~3MOD間接尋址的類型2~0數(shù)據(jù)存儲器地址定義尋址所使用的輔助寄存器表3-2單操作數(shù)間接尋址的各位說明2~0位:3位輔助寄存器域,它定義了尋址所使用的輔助寄存器。ARF由狀態(tài)寄存器ST1中的兼容方式位CMPT來決定。
CMPT=0:標(biāo)準(zhǔn)方式。ARP始終設(shè)置為0,不能修改,ARF來確定輔助寄存器。CMPT=1:兼容方式。ARP=0,ARF來確定輔助寄存器,反之亦然。
表3-3列出了單數(shù)據(jù)存儲器(Smem)操作數(shù)間接尋址類型。表3-3單數(shù)據(jù)存儲器操作數(shù)間接尋址類型例MVKD1000H,*+AR5DataMemory(1)循環(huán)尋址
在卷積、相關(guān)和FIR濾波器等算法中,都需要在存儲器中設(shè)置一個循環(huán)緩沖器,循環(huán)緩沖器實現(xiàn)的關(guān)鍵是循環(huán)尋址的實現(xiàn)。循環(huán)緩沖器大小寄存器(BK)的內(nèi)容確定了循環(huán)緩沖器的大小。長度為R的緩沖器必須從N位地址的邊界開始(即循環(huán)緩沖器基地址的N個最低有效位必須為0),N應(yīng)滿足2N>R的最小整數(shù)。
循環(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)位碼倒序?qū)ぶ饭δ?/p>
位碼倒序?qū)ぶ诽岣吡薋FT等算法的效率。在這種尋址方式中,AR0存放的整數(shù)N是FFT點數(shù)的一半。一個輔助寄存器指向一個數(shù)據(jù)存放的物理單元,當(dāng)使用位倒序?qū)ぶ钒袮R0加到輔助寄存器中時,地址以位倒序的方式產(chǎn)生,即進(jìn)位是從左向右,而不是通常的從右向左。
例如:AR0=00001010B,AR2=01100110B,如執(zhí)行*AR2+0B尋址功能,也就是(01100110)+(0001010),結(jié)果AR2=01101101B。應(yīng)注意,計算是采用從左到右運算的。以16點FFT為例,其運算結(jié)果的順序為X(0)、X(8)、X(4)、…、X(15),如表3-3所示。表3-3位倒序?qū)ぶ?雙操作數(shù)尋址雙數(shù)據(jù)存儲器操作數(shù)間接尋址類型為*ARx、*ARx-、*ARx+、*ARx+0%。所用輔助寄存器只能是AR2、AR3、AR4、AR5。其特點是:占用程序空間小,運行速度快,在一個機器周期內(nèi)通過兩個16位數(shù)據(jù)總線(C和D)讀兩個操作數(shù)。返回本節(jié)3.1.6存儲器映象寄存器尋址存儲器映象寄存器尋址用于修改存儲器映象寄存器(MMR)中的內(nèi)容,而不影響當(dāng)前數(shù)據(jù)頁指針DP和當(dāng)前堆棧指針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堆棧尋址當(dāng)發(fā)生中斷或子程序調(diào)用時,系統(tǒng)堆棧自動保存PC值。堆棧也可以用于保存和傳遞其他數(shù)據(jù)。C54xDSP處理器使用16位的存儲器映象寄存器——堆棧指針(SP)對堆棧進(jìn)行尋址,SP總是指向壓入堆棧的最后一個數(shù)據(jù)。有4條使用堆棧尋址的指令:PSHD把一個數(shù)據(jù)存儲器數(shù)據(jù)壓入堆棧;PSHM把一個存儲器映象寄存器中的值壓入堆棧;POPD從堆棧中彈出一個數(shù)據(jù)至數(shù)據(jù)存儲器單元;POPM從堆棧中彈出一個數(shù)據(jù)至存儲器映象寄存器。00010010x10011010001010110操作前的堆棧和SP0011SPx200010010x10011010001010110操作后的堆棧和SP0010SP入棧時,先減SP再壓入數(shù)據(jù)出棧時,先彈出數(shù)據(jù)再減SP返回首頁3.2TMS320C54x指令的表示方法表3-4指令系統(tǒng)中的符號和縮寫返回首頁3.3TMS320C54的指令系統(tǒng)3.3.1算術(shù)運算指令3.3.2邏輯運算指令3.3.3程序控制指令3.3.4加載和存儲指令返回首頁3.3.1算術(shù)運算指令C54x的算術(shù)運算指令包括加法指令、減法指令、乘法指令、乘累加指令與乘法減法指令、雙字/雙精度運算指令及專用指令。分別如表3-5、表3-6、表3-7、表3-8、表3-9、表3-10所示。1.加法指令如果目的累加器dst被指定,則結(jié)果存放在dst中;如果沒有被指定,則結(jié)果存放在源累加器src中。移位操作時,正數(shù)為左移位,左移位低位添0,負(fù)數(shù)為右移位,高位受SXM位影響。如果SXM=1,則高位進(jìn)行符號擴(kuò)展;如果SXM=0,則高位清零。。表3-5加法指令
【例1】ADD*AR3+,14,A
指令執(zhí)行前
指令執(zhí)行后A0000001200HA0005401200HC1C0AR30100HAR30101HSXM1SXM1數(shù)據(jù)存儲器
0100H1500H0100H1500H【例2】ADDA,-8,B
指令執(zhí)行前指令執(zhí)行后A0005401200H0005401200HB0000001800H0000055812C10【例3】ADD#4568H,8,A,B
指令執(zhí)行前
指令執(zhí)行后A0000001200HA0000001200HB000000
1800HB0000457A00HC1C02減法指令TMS320C54x中減法指令有許多,具體說明見表3-6。在TMS320C54x中,沒有專門的除法指令,要實現(xiàn)除法運算一般有兩種方法:一種方法是用乘法進(jìn)行,如要除以某個數(shù),可以先求出該數(shù)的倒數(shù),再乘以其倒數(shù);另一種方法是用SUBC指令,再重復(fù)16次減法運算,可實現(xiàn)兩個無符號數(shù)的除法運算。減法指令中狀態(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位,數(shù)據(jù)地址=0405H。3乘法指令
TMS320C54x中有大量的乘法運算指令,其結(jié)果都是32位,放在A或B累加器中,如表3-7所示。乘數(shù)在TMS320C54x的乘法指令中的使用很靈活,可以是T寄存器、立即數(shù)、存儲單元以及A或B累加器的高16位。表3-7乘法指令【例6】實現(xiàn)整數(shù)乘法。LD#0030H,A ;將0030H裝入累加器ASTM#0100H,AR2 ;AR2=0100HST#2000H,*AR2 ;(AR2)=2000HRSBXFRCT ;清FTCT標(biāo)志位,準(zhǔn)備整數(shù)乘LD#2,DP ;DP=002HLD@0,T;將AR2中的內(nèi)容2000H裝入T寄存器MPY#-2,A;完成2000H與0FFFEH相乘,結(jié)果放入A累加器(32位),;A=FFFFFFC000H4乘加和乘減指令
乘加指令完成一個乘法運算,將乘積再與源累加器的內(nèi)容相加。指令中使用R后綴的,其運算結(jié)果要進(jìn)行湊整。乘減指令完成從累加器B或源累加器src或目的累加器dst中減去T寄存器或一個操作數(shù)與另一個操作數(shù)的乘積,結(jié)果存放在累加器B或dst或src中。表3-8是對乘加、乘減指令的說明。表3-8乘加和乘減指令
【例7】MAC#345H,A,B
指令執(zhí)行前
指令執(zhí)行后A0000001000HA0000001000HB0000000000HB00000D2400HT0400HT0400HFRCT0FRCT0乘法器結(jié)果不用左移,D1400H【例8】MAC#345H,A,B
指令執(zhí)行前
指令執(zhí)行后A0000001000HA0000001000HB0000000000HB00001A3800HT0400HT0400HFRCT1FRCT1乘法器結(jié)果左移1位,1A2800H【例9】MACR*AR3+,*AR4+,A,B
指令執(zhí)行前
指令執(zhí)行后A0000001000HA0000001000HB0000000004HB000C4C0000HT0008HT5678HFRCT1FRCT1AR30100HAR30101HAR40200HAR40201H數(shù)據(jù)存儲器
0100H5678H0100H5678H0200H1234H0200H1234H表3-9雙精度(32位操作數(shù))指令表3-10專用指令返回本節(jié)3.3.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度上市公司財務(wù)重組與債務(wù)重組咨詢合同3篇
- 2025年度茶葉包裝設(shè)計與生產(chǎn)合作合同范本4篇
- 專業(yè)化2024游艇短期租賃協(xié)議范本版A版
- 2025年民宿改造裝修垃圾清運及生態(tài)修復(fù)合同3篇
- 臨時用地協(xié)議模板(2024定制版)版A版
- 2025年度蓄電池市場調(diào)研與合作協(xié)議書3篇
- 二零二五版工業(yè)自動化工程設(shè)計合同補充條款3篇
- 2025年星巴克租賃合同:咖啡連鎖店租賃與營銷推廣合作協(xié)議2篇
- 二零二五年股權(quán)對賭協(xié)議轉(zhuǎn)讓合同:高科技園區(qū)股權(quán)2篇
- 2025年度房屋買賣糾紛調(diào)解協(xié)議4篇
- 農(nóng)民工工資表格
- 【寒假預(yù)習(xí)】專題04 閱讀理解 20篇 集訓(xùn)-2025年人教版(PEP)六年級英語下冊寒假提前學(xué)(含答案)
- 2024年突發(fā)事件新聞發(fā)布與輿論引導(dǎo)合同
- 地方政府信訪人員穩(wěn)控實施方案
- 小紅書推廣合同范例
- 商業(yè)咨詢報告范文模板
- 2024年智能監(jiān)獄安防監(jiān)控工程合同3篇
- 幼兒園籃球課培訓(xùn)
- AQ 6111-2023個體防護(hù)裝備安全管理規(guī)范知識培訓(xùn)
- 老干工作業(yè)務(wù)培訓(xùn)
- 基底節(jié)腦出血護(hù)理查房
評論
0/150
提交評論