版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三章TMS320C54x的指令系統(tǒng)3.1尋址方式3.2TMS320C54x指令的表示方法3.3TMS320C54x的指令系統(tǒng)小結(jié)3.1尋址方式3.1.1立即尋址3.1.2絕對(duì)尋址3.1.3累加器尋址3.1.4直接尋址3.1.5間接尋址3.1.6存儲(chǔ)器映象寄存器尋址3.1.7堆棧尋址返回首頁(yè)表3-1尋址指令中用到的縮寫(xiě)符號(hào)及其含義縮寫(xiě)符號(hào)含義Smem16位單數(shù)據(jù)存儲(chǔ)器操作數(shù)Xmem在雙操作數(shù)指令及某些單操作數(shù)指令中所用的16位雙數(shù)據(jù)存儲(chǔ)器操作數(shù),從DB總線上讀出Ymem在雙操作數(shù)指令中所用的16位雙數(shù)據(jù)存儲(chǔ)器操作數(shù),從CB總線上讀出;在讀同時(shí)并行寫(xiě)的指令中表示寫(xiě)操作數(shù)dmad16位立即數(shù)——數(shù)據(jù)存儲(chǔ)器地址(0~65535)pmad16位立即數(shù)——程序存儲(chǔ)器地址(0~65535)PA16位立即數(shù)——I/O口地址(0~65535)src源累加器(A或B)dst目的累加器(A或B)lk16位長(zhǎng)立即數(shù)3.1.1立即尋址用于初始化,指令中包括了立即操作數(shù)。一條指令中可對(duì)兩種立即數(shù)編碼,一種是短立即數(shù)(3、5、8或9位),另一種是16位的長(zhǎng)立即數(shù)。立即數(shù)尋址指令中在數(shù)字或符號(hào)常數(shù)前面加一個(gè)“#”號(hào),來(lái)表示立即數(shù)。例如:把立即數(shù)80H裝入累加器A,其正確的指令為:LD#80H,A如果漏掉了“?!碧?hào),指令LD80H,A就變成了把地址80H單元中的數(shù)裝到累加器A中去。返回本節(jié)3.1.2絕對(duì)尋址1數(shù)據(jù)存儲(chǔ)器(dmad)尋址2程序存儲(chǔ)器(pmad)尋址3端口地址(PA)尋址4長(zhǎng)立即數(shù)*(lk)尋址1.數(shù)據(jù)存儲(chǔ)器(dmad)尋址數(shù)據(jù)存儲(chǔ)器尋址使用符號(hào)(符號(hào)地址)或一個(gè)表示16位地址的立即數(shù)來(lái)指明尋址的數(shù)據(jù)存儲(chǔ)單元的16位絕對(duì)地址。使用數(shù)據(jù)存儲(chǔ)器尋址的指令有:
MVDKSmem,dmad MVDMdmad,MMRMVKDdmad,Smem MVMDMMR,dmad例如:MVKDSMAPLE,*AR5;2程序存儲(chǔ)器(pmad)尋址程序存儲(chǔ)器(pmad)尋址使用符號(hào)(符號(hào)地址)或一個(gè)表示16位地址的立即數(shù)來(lái)給出程序空間的地址。使用程序存儲(chǔ)器尋址的指令有: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長(zhǎng)立即數(shù)*(lk)尋址長(zhǎng)立即數(shù)*(lk)尋址用于所有支持單數(shù)據(jù)存儲(chǔ)器操作數(shù)(Smem)的指令。長(zhǎng)立即數(shù)*(lk)尋址使用一個(gè)符號(hào)(符號(hào)地址)或一個(gè)表示16位地址的立即數(shù)來(lái)指定數(shù)據(jù)存儲(chǔ)空間的一個(gè)地址。例如,把數(shù)據(jù)空間中地址為BUFFER單元中的數(shù)據(jù)傳送到累加器A,指令可寫(xiě)為:LD*(BUFFER),A返回本節(jié)3.1.3累加器尋址累加器尋址是用累加器中的數(shù)值作為一個(gè)地址讀寫(xiě)程序存儲(chǔ)器。共有兩條指令可以采用累加器尋址:
READASmemWRITASmem例READADAT6;DAT6.equ0206H
ProgramMemoryDataMemory例4.44
WRITADAT5;DAT5.equ1905H
ProgramMemoryDataMemory返回本節(jié)3.1.4直接尋址數(shù)據(jù)存儲(chǔ)器地址(dma)的低7位作為地址偏移量,結(jié)合由數(shù)據(jù)頁(yè)指針DP或堆棧指針SP給出高9位基地址,共同形成16位的數(shù)據(jù)存儲(chǔ)器地址。使用這種尋址方式,用戶可在不改變DP或SP的情況下,對(duì)一頁(yè)內(nèi)的128個(gè)存儲(chǔ)單元隨機(jī)尋址。數(shù)據(jù)存儲(chǔ)器地址(dma)的低7位放在指令字中。直接尋址的代碼格式為:位名稱功能15~8操作碼指令的操作碼7II=0表示指令使用的尋址方式為直接尋址6~0數(shù)據(jù)存儲(chǔ)器地址指令的數(shù)據(jù)存儲(chǔ)器地址偏移表3-1直接尋址的各位說(shuō)明表3-1直接尋址的各位說(shuō)明
DP或SP都可以與dmad偏移相結(jié)合來(lái)產(chǎn)生實(shí)際地址。位于狀態(tài)寄存器ST1中的編譯方式位(CPL)決定選擇采用哪種方式來(lái)產(chǎn)生實(shí)際地址。CPL=0時(shí),dmad域與9bit的DP域相結(jié)合形成16bit的數(shù)據(jù)存儲(chǔ)器地址;CPL=1時(shí),dmad域加上(正偏移)SP的值形成16bit的數(shù)據(jù)存儲(chǔ)器地址。圖3-1DP作為基地址的直接尋址方式圖3-2SP作為基地址的直接尋址方式
直接尋址的指令書(shū)寫(xiě)格式為在變量前加一個(gè)@,或者用一個(gè)dmad來(lái)設(shè)定偏移地址。
下面舉例說(shuō)明:RSBXCPL;CPL=0,使用DPLD#3,DP ;設(shè)置當(dāng)前頁(yè)面為3LD@x,A ;將x值加載到累加器ALD#4,DP ;設(shè)置當(dāng)前頁(yè)面為4,y所在的頁(yè)面ADD@y,A ;將y值加到累加器A返回本節(jié)3.1.5間接尋址TMS320C54x有8個(gè)16位輔助寄存器(AR0~AR7)、通過(guò)一個(gè)輔助寄存器中的16位地址可以訪問(wèn)64K字?jǐn)?shù)據(jù)空間中的任意單元,同時(shí)可以預(yù)調(diào)整或修改輔助寄存器值,完成循環(huán)尋址和位碼倒序?qū)ぶ返忍厥夤δ?;兩個(gè)輔助寄存器算術(shù)運(yùn)算單元(ARAU0和ARAU1),它們與8個(gè)輔助寄存器一起完成16位無(wú)符號(hào)數(shù)算術(shù)運(yùn)算。
1單操作數(shù)尋址單數(shù)據(jù)存儲(chǔ)器操作數(shù)間接尋址指令的格式如下:位名稱功能15~8操作碼指令的操作碼7II=1表示指令使用的尋址方式為間接尋址6~3MOD間接尋址的類(lèi)型2~0數(shù)據(jù)存儲(chǔ)器地址定義尋址所使用的輔助寄存器表3-2單操作數(shù)間接尋址的各位說(shuō)明2~0位:3位輔助寄存器域,它定義了尋址所使用的輔助寄存器。ARF由狀態(tài)寄存器ST1中的兼容方式位CMPT來(lái)決定。
CMPT=0:標(biāo)準(zhǔn)方式。ARP始終設(shè)置為0,不能修改,ARF來(lái)確定輔助寄存器。CMPT=1:兼容方式。ARP=0,ARF來(lái)確定輔助寄存器,反之亦然。
表3-3列出了單數(shù)據(jù)存儲(chǔ)器(Smem)操作數(shù)間接尋址類(lèi)型。表3-3單數(shù)據(jù)存儲(chǔ)器操作數(shù)間接尋址類(lèi)型例MVKD1000H,*+AR5DataMemory(1)循環(huán)尋址
在卷積、相關(guān)和FIR濾波器等算法中,都需要在存儲(chǔ)器中設(shè)置一個(gè)循環(huán)緩沖器,循環(huán)緩沖器實(shí)現(xiàn)的關(guān)鍵是循環(huán)尋址的實(shí)現(xiàn)。循環(huán)緩沖器大小寄存器(BK)的內(nèi)容確定了循環(huán)緩沖器的大小。長(zhǎng)度為R的緩沖器必須從N位地址的邊界開(kāi)始(即循環(huán)緩沖器基地址的N個(gè)最低有效位必須為0),N應(yīng)滿足2N>R的最小整數(shù)。
循環(huán)緩沖區(qū)的有效基地址(EFB)就是用戶選定的輔助寄存器(ARx)的低N位置0后所得到的值,循環(huán)緩沖區(qū)的的尾地址(EOB)是通過(guò)用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.舉例:
一個(gè)循環(huán)緩沖區(qū)大小BK=N=6,AR1=0060H,用*AR1+%間接尋址。第一次尋址后,AR1=0061H;第二次尋址后,AR1=0062H;….;第六次尋址后,AR1指向0066H,再按照BK的值6取模,此時(shí),AR1又指向0060H單元(前面5次按照BK取模時(shí),AR1的值不變)。(2)位碼倒序?qū)ぶ饭δ?/p>
位碼倒序?qū)ぶ诽岣吡薋FT等算法的效率。在這種尋址方式中,AR0存放的整數(shù)N是FFT點(diǎn)數(shù)的一半。一個(gè)輔助寄存器指向一個(gè)數(shù)據(jù)存放的物理單元,當(dāng)使用位倒序?qū)ぶ钒袮R0加到輔助寄存器中時(shí),地址以位倒序的方式產(chǎn)生,即進(jìn)位是從左向右,而不是通常的從右向左。
例如:AR0=00001010B,AR2=01100110B,如執(zhí)行*AR2+0B尋址功能,也就是(01100110)+(0001010),結(jié)果AR2=01101101B。應(yīng)注意,計(jì)算是采用從左到右運(yùn)算的。以16點(diǎn)FFT為例,其運(yùn)算結(jié)果的順序?yàn)閄(0)、X(8)、X(4)、…、X(15),如表3-3所示。表3-3位倒序?qū)ぶ?雙操作數(shù)尋址雙數(shù)據(jù)存儲(chǔ)器操作數(shù)間接尋址類(lèi)型為*ARx、*ARx-、*ARx+、*ARx+0%。所用輔助寄存器只能是AR2、AR3、AR4、AR5。其特點(diǎn)是:占用程序空間小,運(yùn)行速度快,在一個(gè)機(jī)器周期內(nèi)通過(guò)兩個(gè)16位數(shù)據(jù)總線(C和D)讀兩個(gè)操作數(shù)。返回本節(jié)3.1.6存儲(chǔ)器映象寄存器尋址存儲(chǔ)器映象寄存器尋址用于修改存儲(chǔ)器映象寄存器(MMR)中的內(nèi)容,而不影響當(dāng)前數(shù)據(jù)頁(yè)指針DP和當(dāng)前堆棧指針SP。由于這種方式不需要修改DP和SP,對(duì)寄存器的寫(xiě)操作開(kāi)銷(xiāo)最小。存儲(chǔ)器映象寄存器尋址可用于直接尋址和間接尋址。共8條指令能使用存儲(chǔ)器映射寄存器的尋址方式:
*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)用時(shí),系統(tǒng)堆棧自動(dòng)保存PC值。堆棧也可以用于保存和傳遞其他數(shù)據(jù)。C54xDSP處理器使用16位的存儲(chǔ)器映象寄存器——堆棧指針(SP)對(duì)堆棧進(jìn)行尋址,SP總是指向壓入堆棧的最后一個(gè)數(shù)據(jù)。有4條使用堆棧尋址的指令:PSHD把一個(gè)數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)壓入堆棧;PSHM把一個(gè)存儲(chǔ)器映象寄存器中的值壓入堆棧;POPD從堆棧中彈出一個(gè)數(shù)據(jù)至數(shù)據(jù)存儲(chǔ)器單元;POPM從堆棧中彈出一個(gè)數(shù)據(jù)至存儲(chǔ)器映象寄存器。00010010x10011010001010110操作前的堆棧和SP0011SPx200010010x10011010001010110操作后的堆棧和SP0010SP入棧時(shí),先減SP再壓入數(shù)據(jù)出棧時(shí),先彈出數(shù)據(jù)再減SP返回首頁(yè)3.2TMS320C54x指令的表示方法表3-4指令系統(tǒng)中的符號(hào)和縮寫(xiě)返回首頁(yè)3.3TMS320C54的指令系統(tǒng)3.3.1算術(shù)運(yùn)算指令3.3.2邏輯運(yùn)算指令3.3.3程序控制指令3.3.4加載和存儲(chǔ)指令返回首頁(yè)3.3.1算術(shù)運(yùn)算指令C54x的算術(shù)運(yùn)算指令包括加法指令、減法指令、乘法指令、乘累加指令與乘法減法指令、雙字/雙精度運(yùn)算指令及專(zhuān)用指令。分別如表3-5、表3-6、表3-7、表3-8、表3-9、表3-10所示。1.加法指令如果目的累加器dst被指定,則結(jié)果存放在dst中;如果沒(méi)有被指定,則結(jié)果存放在源累加器src中。移位操作時(shí),正數(shù)為左移位,左移位低位添0,負(fù)數(shù)為右移位,高位受SXM位影響。如果SXM=1,則高位進(jìn)行符號(hào)擴(kuò)展;如果SXM=0,則高位清零。。表3-5加法指令
【例1】ADD*AR3+,14,A
指令執(zhí)行前
指令執(zhí)行后A0000001200HA0005401200HC1C0AR30100HAR30101HSXM1SXM1數(shù)據(jù)存儲(chǔ)器
0100H1500H0100H1500H【例2】ADDA,-8,B
指令執(zhí)行前指令執(zhí)行后A0005401200H0005401200HB0000001800H0000055812C10【例3】ADD#4568H,8,A,B
指令執(zhí)行前
指令執(zhí)行后A0000001200HA0000001200HB000000
1800HB0000457A00HC1C02減法指令TMS320C54x中減法指令有許多,具體說(shuō)明見(jiàn)表3-6。在TMS320C54x中,沒(méi)有專(zhuān)門(mén)的除法指令,要實(shí)現(xiàn)除法運(yùn)算一般有兩種方法:一種方法是用乘法進(jìn)行,如要除以某個(gè)數(shù),可以先求出該數(shù)的倒數(shù),再乘以其倒數(shù);另一種方法是用SUBC指令,再重復(fù)16次減法運(yùn)算,可實(shí)現(xiàn)兩個(gè)無(wú)符號(hào)數(shù)的除法運(yùn)算。減法指令中狀態(tài)位與加法指令中的基本相同。表3-6減法指令【例4】SUB#12345,8,A,B
指令執(zhí)行前
指令執(zhí)行后A0000001200HA0000001200HB0000001800HBFFFFCFD900HCXC0SXM1SXM1
【例5】
RSBXCPL;CPL=0,使用DP指針
LD#8,DP ;使頁(yè)面指針DP=8,直接尋址高9位LD#0006H,A ;加載A累加器SSBXC ;置借位位C為1SUBB@5,A;完成帶借位的減法運(yùn)算,@5直接尋址的低9位,數(shù)據(jù)地址=0405H。3乘法指令
TMS320C54x中有大量的乘法運(yùn)算指令,其結(jié)果都是32位,放在A或B累加器中,如表3-7所示。乘數(shù)在TMS320C54x的乘法指令中的使用很靈活,可以是T寄存器、立即數(shù)、存儲(chǔ)單元以及A或B累加器的高16位。表3-7乘法指令【例6】實(shí)現(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乘加和乘減指令
乘加指令完成一個(gè)乘法運(yùn)算,將乘積再與源累加器的內(nèi)容相加。指令中使用R后綴的,其運(yùn)算結(jié)果要進(jìn)行湊整。乘減指令完成從累加器B或源累加器src或目的累加器dst中減去T寄存器或一個(gè)操作數(shù)與另一個(gè)操作數(shù)的乘積,結(jié)果存放在累加器B或dst或src中。表3-8是對(duì)乘加、乘減指令的說(shuō)明。表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ù)存儲(chǔ)器
0100H5678H0100H5678H0200H1234H0200H1234H表3-9雙精度(32位操作數(shù))指令表3-10專(zhuān)用指令返回本節(jié)3.3.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 18108-2024鮮海水魚(yú)通則
- 局部止痛藥膏產(chǎn)品供應(yīng)鏈分析
- 牙齒美白筆項(xiàng)目運(yùn)營(yíng)指導(dǎo)方案
- 商品房銷(xiāo)售行業(yè)市場(chǎng)調(diào)研分析報(bào)告
- 市場(chǎng)營(yíng)銷(xiāo)概念開(kāi)發(fā)行業(yè)營(yíng)銷(xiāo)策略方案
- 農(nóng)產(chǎn)品供應(yīng)鏈數(shù)字化行業(yè)相關(guān)項(xiàng)目經(jīng)營(yíng)管理報(bào)告
- 蒸臉器項(xiàng)目營(yíng)銷(xiāo)計(jì)劃書(shū)
- 科學(xué)用探測(cè)器商業(yè)機(jī)會(huì)挖掘與戰(zhàn)略布局策略研究報(bào)告
- 為電影制作字幕行業(yè)相關(guān)項(xiàng)目經(jīng)營(yíng)管理報(bào)告
- 穿戴式視頻顯示器項(xiàng)目運(yùn)營(yíng)指導(dǎo)方案
- 浙江省杭州市上城區(qū)采荷中學(xué)2023-2024學(xué)年七年級(jí)上學(xué)期期中數(shù)學(xué)試卷
- 危急值的考試題及答案
- 2.3 河流 第3課時(shí) 課件-2024-2025學(xué)年八年級(jí)地理上學(xué)期人教版
- 監(jiān)理協(xié)議合同模板
- 2023年西藏自治區(qū)日喀則市拉孜稅務(wù)局公務(wù)員考試《行政職業(yè)能力測(cè)驗(yàn)》歷年真題及詳解
- 2024內(nèi)蒙古農(nóng)牧業(yè)融資擔(dān)保限公司公開(kāi)招聘28人高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 6.3+價(jià)值的創(chuàng)造和實(shí)現(xiàn)課件-2024-2025學(xué)年高中政治統(tǒng)編版必修四哲學(xué)與文化
- 內(nèi)斜視課件教學(xué)課件
- 湖南省長(zhǎng)沙市明德天心中學(xué)2024-2025學(xué)年七年級(jí)上學(xué)期9月月考數(shù)學(xué)試題(無(wú)答案)
- 課件:《中華民族共同體概論》第十五講:新時(shí)代與中華民族共同體建設(shè)
- 自然拼讀法-圖文.課件
評(píng)論
0/150
提交評(píng)論