版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章TMS320C54x的指令系統(tǒng)
知識(shí)要點(diǎn):本章涉及的內(nèi)容包括TMS320C54x指令系統(tǒng)尋址方式的分類和功能,指令系統(tǒng)中的常用符號(hào)、縮略語(yǔ)和運(yùn)算符,數(shù)據(jù)傳送、算術(shù)運(yùn)算、邏輯運(yùn)算、程序控制、并行操作和重復(fù)操作指令。3.1尋址方式指令的尋址方式是指硬件尋找指令指定的參與運(yùn)算的操作數(shù)的方法。
TMS320C54x有7種基本的數(shù)據(jù)尋址方式:立即尋址、絕對(duì)尋址、累加器尋址、直接尋址、間接尋址、存儲(chǔ)器映像寄存器尋址和堆棧尋址。表3.1.1列出了尋址方式中用到的一些縮略語(yǔ)名稱及其含義??s寫符號(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í)并行寫的指令中表示寫操作數(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部分尋址縮略語(yǔ)3.1.1立即尋址立即尋址主要用于初始化,其特點(diǎn)是指令中包含有一個(gè)固定的立即數(shù),因此沒有尋找數(shù)據(jù)地址的過(guò)程。
在一條指令中的立即數(shù)有短立即數(shù)和長(zhǎng)立即數(shù)兩類。立即數(shù)的長(zhǎng)度由使用的指令類型決定。表3.1.2列出了可以包含立即數(shù)的指令,并指出了立即數(shù)的位數(shù)。3位或5位立即數(shù) 8位立即數(shù)9位立即數(shù)16位立即數(shù)LDFRAMELDRPTLDADDADDMANDANDMBITFCMPMLDMACORORMRPTRPTZSTSTMSUBXORXORM表3.1.2支持立即尋址的指令在立即尋址方式指令中,應(yīng)在數(shù)值或符號(hào)前面加一個(gè)“#”,表示一個(gè)立即數(shù),以區(qū)別于地址。例如,將一個(gè)十六進(jìn)制數(shù)80H,裝入累加器A的指令為:
LD #80H,A3.1.2絕對(duì)尋址絕對(duì)尋址利用16位地址尋址存儲(chǔ)單元,其特點(diǎn)是指令中包含一個(gè)固定地址。
絕對(duì)尋址有以下四種類型:①數(shù)據(jù)存儲(chǔ)器地址(dmad)尋址該尋址類型用于確定操作數(shù)存于數(shù)據(jù)存儲(chǔ)單元的地址。語(yǔ)法是使用一個(gè)程序標(biāo)號(hào)或一個(gè)數(shù)字來(lái)指定數(shù)據(jù)空間的一個(gè)地址。例如,將數(shù)據(jù)存儲(chǔ)器EXAM1地址單元中的數(shù)據(jù)復(fù)制到AR5寄存器指向的數(shù)據(jù)存儲(chǔ)單元中去,即MVKD EXAM1,*AR5其中EXAM1是16位地址dmad值。②程序存儲(chǔ)器地址(pmad)尋址該尋址類型用于確定程序存儲(chǔ)器中的一個(gè)地址。語(yǔ)法是使用一個(gè)符號(hào)或具體的數(shù)字來(lái)指定程序空間的一個(gè)地址。例如,將程序存儲(chǔ)器TABLE地址單元中的內(nèi)容復(fù)制到AR2寄存器所指向的數(shù)據(jù)存儲(chǔ)單元中,即MVPD TABLE,*AR2其中TABLE是16位地址pmad值。③端口(PA)尋址該尋址類型是用一個(gè)符號(hào)或一個(gè)數(shù)字來(lái)確定外部I/O端口的地址。例如,把一個(gè)數(shù)從端口位FIFO的I/O口復(fù)制到AR5寄存器所指向的數(shù)據(jù)存儲(chǔ)單元中,即PORTR FIFO,*AR5其中FIFO是I/O端口地址PA。④*(1K)尋址該尋址類型是使用一個(gè)指定數(shù)據(jù)空間的地址來(lái)確定數(shù)據(jù)存儲(chǔ)器中的一個(gè)地址。例如,把地址為PN的數(shù)據(jù)單元中的數(shù)據(jù)裝到累加器A中,即LD *(PN),A3.1.3累加器尋址累加器尋址是將累加器的內(nèi)容作為地址去訪問(wèn)程序存儲(chǔ)器單元,即將累加器中的數(shù)作為地址,用來(lái)對(duì)存放數(shù)據(jù)的程序存儲(chǔ)器尋址。有兩條指令可以采用累加器尋址。①READA Smem②WRITA Smem3.1.4直接尋址直接尋址是利用數(shù)據(jù)指針和堆棧指針尋址,其特點(diǎn)是數(shù)據(jù)存儲(chǔ)器地址由基地址和偏移地址共同構(gòu)成,共16位?;刂肺挥跀?shù)據(jù)存儲(chǔ)器地址的高9位,偏移地址位于數(shù)據(jù)存儲(chǔ)器地址(dmad)的低7位。下面分別給出了直接尋址的指令代碼格式以及各位說(shuō)明。
操作碼I=0數(shù)據(jù)存儲(chǔ)器地址15~876~0位名稱功能15~8操作碼這8位包含了指令的操作碼7II=0,表示指令使用的尋址方式位直接尋址6~0數(shù)據(jù)存儲(chǔ)器地址這7位包含了指令的數(shù)據(jù)存儲(chǔ)器地址偏移表3.1.3直接尋址的各位說(shuō)明圖3.1.1直接尋址的指令代碼格式DP和SP都可以與dmad偏移結(jié)合產(chǎn)生實(shí)際的地址。位于狀態(tài)寄存器ST1的CPL位可以選擇采用哪種方式生成實(shí)際的地址。①當(dāng)CPL=0,以數(shù)據(jù)頁(yè)指針寄存器DP中的9位高位,以指令中的7位為低位,共同構(gòu)成16位數(shù)據(jù)存儲(chǔ)單元的地址,如下圖:9位數(shù)據(jù)頁(yè)指針DP值7位IR值15~76~0圖3.1.2CPL=0時(shí),16位數(shù)據(jù)存儲(chǔ)單元的地址②當(dāng)CPL=1時(shí),將堆棧指針SP的16位地址與指令中的7位地址相加,形成16位的數(shù)據(jù)存儲(chǔ)器地址,如圖:16位堆棧指針SP15~00000000007位IR值15~76~0有效存儲(chǔ)地址圖3.1.3CPL=1時(shí),16位數(shù)據(jù)存儲(chǔ)單元的地址3.1.5間接尋址間接尋址是利用輔助寄存器內(nèi)容作為地址指針訪問(wèn)存儲(chǔ)器。TMS320C54x有8個(gè)16位輔助寄存器(AR0~AR7)。每一個(gè)寄存器都可以用來(lái)尋址64K數(shù)據(jù)存儲(chǔ)空間中任何一個(gè)單元。算數(shù)運(yùn)算單元(ARAU0、ARAU1)根據(jù)輔助寄存器的內(nèi)容進(jìn)行操作,完成16位無(wú)符號(hào)算術(shù)運(yùn)算。間接尋址的靈活性體現(xiàn)在:不僅能從存儲(chǔ)器中讀或?qū)懸粋€(gè)單16位的數(shù)據(jù)操作數(shù),而且能在一條指令中訪問(wèn)兩個(gè)數(shù)據(jù)存儲(chǔ)單元。①單操作數(shù)尋址下圖列出了單操作數(shù)間接尋址指令的格式:
表3.1.4列出了單操作數(shù)間接尋址指令的各位說(shuō)明15~876~32~0圖3.1.4單操作數(shù)間接尋址指令的格式操作碼I=1MODARF表3.15列出了16種單操作數(shù)間接尋址的功能及其說(shuō)明。位名稱功能15~8操作碼8位域包含了指令操作碼7II=1,表示間接尋址方式6~3MOD定義尋址方式的類型2~0ARF定義了尋址所使用的輔助寄存器,①CMPT=0時(shí),則ARF=0確定輔助寄存器,這種方式下,ARP一直為0。②CMPT=1時(shí),若ARF=0,用ARP選擇輔助寄存器,否則用ARF確定,當(dāng)訪問(wèn)完成后,把ARF的值裝入ARP。表3.1.4單操作數(shù)間接尋址指令的各位說(shuō)明表3.1.5單數(shù)據(jù)存儲(chǔ)器操作數(shù)間接尋址類型
上表中還有兩種特殊的間接尋址方式:循環(huán)尋址方式和位倒序?qū)ぶ贩绞?。⑴循環(huán)尋址在信號(hào)處理常用的卷積、相關(guān)、FIR濾波算法中,都需要在存儲(chǔ)器中實(shí)現(xiàn)一個(gè)循環(huán)緩沖區(qū),它是一個(gè)包含最新數(shù)據(jù)的滑動(dòng)窗口。在尋址計(jì)算過(guò)程中,新進(jìn)來(lái)的數(shù)據(jù)會(huì)覆蓋較早的數(shù)據(jù)。循環(huán)尋址是實(shí)現(xiàn)循環(huán)緩沖區(qū)的關(guān)鍵。
寄存器BK用于確定循環(huán)緩沖區(qū)的大小。長(zhǎng)度為R的循環(huán)緩沖區(qū)必須從一個(gè)N位(N是滿足2的N次方>R條件的最小整數(shù))邊界開始。
例如:長(zhǎng)度R=32循環(huán)緩沖區(qū)必須從低6位為0的地址xxxxxxxxxxx000000(N=6,26>32)開始,同時(shí)用以下指令將R值加載到BK中:STM #32BK循環(huán)尋址時(shí),要指定一個(gè)ARx指向循環(huán)緩沖區(qū)的一個(gè)單元。該ARx的低N位置0后所得到的值為循環(huán)緩沖區(qū)的有效基地址。用BK的低N位代替ARx的低N位所得到的值為循環(huán)緩沖區(qū)的尾地址。ARx的低N位就是循環(huán)緩沖區(qū)的index,step就是加到ARx或從ARx中減去的值。循環(huán)尋址算法如下:
If
0≤index+step<BK; index=index+stepElseifindex+step≥BK; index=index+step-BKElseifindex+step<0; index=index+step+BK實(shí)際上是以BK寄存器中的值為模的取模運(yùn)算。⑵位倒序?qū)ぶ?/p>
位倒序?qū)ぶ房梢蕴岣逨FT等算法效率。例如16點(diǎn)FFT的位倒序?qū)ぶ啡绫?.1.6所示。C54x提供的位倒序?qū)ぶ饭δ?,提高了在FFT算法中使用存儲(chǔ)器的效率及其執(zhí)行速度。設(shè)FFT長(zhǎng)度N=16,則AR0賦值為8,AR2表示在存儲(chǔ)區(qū)中數(shù)據(jù)的基地址(01100000),位倒序讀入數(shù)據(jù):*AR2+0B;AR2=01100000(第0個(gè)值)*AR2+0B;AR2=01101000(第1個(gè)值)*AR2+0B;AR2=01100100(第2個(gè)值)*AR2+0B;AR2=01101100(第3個(gè)值)*AR2+0B;AR2=01100010(第4個(gè)值)*AR2+0B;AR2=01101010(第5個(gè)值)*AR2+0B;AR2=01100110(第6個(gè)值)*AR2+0B;AR2=01101110(第7個(gè)值)表3.1.6位倒序?qū)ぶ贩祷乇竟?jié)②雙操作數(shù)尋址雙操作數(shù)尋址用于完成執(zhí)行2次讀操作或者1次讀和1次并行存儲(chǔ)操作。這些指令代碼都是1個(gè)字長(zhǎng),而且只能以間接尋址方式進(jìn)行操作。兩個(gè)數(shù)據(jù)存儲(chǔ)器操作數(shù)由Xmem和Ymem表示,Xmem是讀操作數(shù),Ymem是在讀兩個(gè)操作數(shù)時(shí)表示讀操作數(shù),在1次讀同時(shí)并行1次寫的指令中表示寫操作。下圖列出了雙操作數(shù)尋址的指令代碼格式:操作碼XmodXarYmodYar15~876543210位名稱功能15~8操作碼8位代碼包含了指令的操作碼7~6Xmod定義了用于尋址Xmem操作數(shù)的間接尋址方式的類型5~4Xar2位代碼確定了存儲(chǔ)Xmem地址的輔助寄存器3~2Ymod定義了用于尋址Ymem操作數(shù)的間接尋址方式類型1~0Yar2位代碼確定存儲(chǔ)Ymem地址的輔助寄存器表3.1.7雙操作數(shù)的各位說(shuō)明:圖3.1.5雙操作數(shù)尋址的指令代碼格式由于只有2位可以用于選擇輔助寄存器,所以根據(jù)Xar或Yar的值可以選擇4個(gè)寄存器。下表列出了Xar或Yar同輔助寄存器的對(duì)應(yīng)關(guān)系:Xar或Yar值輔助寄存器00AR201AR310AR411AR5表3.1.8Xar或Yar同輔助寄存器的對(duì)應(yīng)關(guān)系下表列出了雙操作數(shù)間接尋址的類型:操作碼語(yǔ)法功能說(shuō)明*ARx地址=ARxARx中的內(nèi)容是數(shù)據(jù)存儲(chǔ)地址*ARx-地址=ARx尋址后,ARx的地址減1ARx=ARx-1*ARx+地址=ARX尋址后,ARx的地址加1Arx=ARx+1*ARx+0%ARx=Circ(ARx+AR0)尋址后,AR0以尋址方式加到ARx中地址=ARx表3.1.9雙操作數(shù)間接尋址的類型3.1.6存儲(chǔ)器映像寄存器尋址存儲(chǔ)器映像寄存器(MMR)尋址用于修改存儲(chǔ)器映像寄存器的值,而不影響當(dāng)前數(shù)據(jù)頁(yè)指針(DP)或堆棧指針(SP)的值。由于DP和SP的值不需要修改,所以寫寄存器操作的開銷最小。存儲(chǔ)器映像寄存器尋址可以工作在直接和間接尋址方式下。有以下兩種產(chǎn)生MMR地址的方法。①直接尋址。在直接尋址方式中,不管當(dāng)前DP或SP的值如何,強(qiáng)制數(shù)據(jù)存儲(chǔ)器地址的高9位為0。利用指令中數(shù)據(jù)存儲(chǔ)器地址的低7位訪問(wèn)MMR,相當(dāng)于基地址為0的直接尋址方式。②間接尋址。在間接尋址方式中,使用當(dāng)前輔助寄存器的低7位作為地址訪問(wèn)MMR。指令執(zhí)行后,輔助寄存器中的高9位清為0。3.1.7堆棧尋址系統(tǒng)堆棧用于在發(fā)生中斷或子程序調(diào)用時(shí)自動(dòng)存放程序計(jì)數(shù)器(PC)中的值。堆棧也能用來(lái)保護(hù)現(xiàn)場(chǎng)或傳送參數(shù)?!疌54x的堆棧是從高地址向低地址方向填入。處理器使用一個(gè)16位堆棧指針(SP)來(lái)對(duì)堆棧進(jìn)行管理,SP始終指向存放在堆棧中的最后一個(gè)元素。有四條指令使用堆棧尋址方式:·PSHD,將數(shù)據(jù)存儲(chǔ)器中的一個(gè)數(shù)壓入堆棧?!SHM,將一個(gè)存儲(chǔ)器映像寄存器(MMR)中的值壓入堆棧?!OPD,從堆棧彈出一個(gè)數(shù)到數(shù)據(jù)存儲(chǔ)單元?!OPM,從堆棧彈出一個(gè)數(shù)到存儲(chǔ)器映像寄存器(MMR)。執(zhí)行壓入操作時(shí),是先減小SP后再將數(shù)據(jù)壓入堆棧的;而執(zhí)行堆棧彈出操作時(shí),則先從堆棧彈出數(shù)據(jù),然后再增加SP的值。3.2TMS320C54x指令的表示方法TMS320C54x的助記符指令時(shí)由操作碼和操作數(shù)兩部分組成。在進(jìn)行匯編以前,操作碼和操作數(shù)都是用助記符表示。3.2.1指令系統(tǒng)中的符號(hào)表3.2.1是指令系統(tǒng)中的符號(hào)和縮略語(yǔ)。表3.2.1指令系統(tǒng)中的符號(hào)和縮略語(yǔ)3.2.2指令系統(tǒng)中的運(yùn)算符表3.2.2列出了表達(dá)式中可用的運(yùn)算符號(hào)及運(yùn)算的優(yōu)先級(jí)。符號(hào)+-~!取正、取負(fù)、按位求補(bǔ)、邏輯負(fù)從右到左*/%乘法、除法、求模從左到右+-加法、減法從左到右^指數(shù)從左到右<<>>左移、右移從左到右<≤小于、小于或等于從左到右>≥
大于、大于或等于從左到右≠!=不等于從左到右=等于從左到右&按位與運(yùn)算從左到右∧按位異或運(yùn)算從左到右|按位或運(yùn)算從左到右3.3TMS320C54x的指令系統(tǒng)TMS320C54x的指令系統(tǒng)共有129條基本命令,由于操作數(shù)的尋址方式不同,由它們可以派生出205條指令。按指令的功能分類,可以分成數(shù)據(jù)傳送指令、算術(shù)運(yùn)算指令、邏輯運(yùn)算指令、程序控制指令、并行操作指令和重復(fù)操作指令。3.3.1數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令是從存儲(chǔ)器中將源操作數(shù)傳送到目的操作數(shù)所指定的存儲(chǔ)器中?!疌54x的數(shù)據(jù)傳送指令包括裝載指令、存儲(chǔ)指令、混合指令和存儲(chǔ)指令。裝載指令共21條,用于立即數(shù)或存儲(chǔ)器內(nèi)容賦給目的寄存器。表3.3.1列出了這些指令的語(yǔ)法表示、運(yùn)行結(jié)果以及相關(guān)注釋。
表3.3.1裝載指令存儲(chǔ)指令共18條,用于將源操作數(shù)或立即數(shù)存入指定存儲(chǔ)器或寄存器。表3.3.2列出了存儲(chǔ)指令的語(yǔ)法表示、運(yùn)行結(jié)果及注釋。
表3.3.2存儲(chǔ)指令混合裝載和存儲(chǔ)指令共12條,它的語(yǔ)法表示、運(yùn)行結(jié)果及注釋如表3.3.3。表3.3.3混合裝載和存儲(chǔ)指令3.3.2算術(shù)運(yùn)算指令TMS320C54x的算術(shù)指令具有運(yùn)算功能強(qiáng)、指令豐富等特點(diǎn),它包括加法指令、減法指令、乘法指令、乘法-累加指令、乘法-減法指令、雙字運(yùn)算指令及特殊應(yīng)用指令。
①加法指令加法指令共13條,如表3.3.4。
②減法指令減法指令共13條,如表3.3.5
表3.3.5減法指令
③乘法指令乘法指令共10條,如表3.3.6。表3.3.6乘法指令④乘法-累加指令和乘法-減法指令乘法-累加指令和乘法-減法指令,共22條。如表3.3.7所示。
表3.3.7乘法-累加指令和乘法-減法指令⑤雙字算術(shù)運(yùn)算指令雙字算術(shù)運(yùn)算指令共6條,如表3.3.8。
表3.3.8雙字算術(shù)運(yùn)算指令⑥特殊運(yùn)算指令特殊運(yùn)算指令共15條,如表3.3.9
表3.3.9特殊運(yùn)算指令3.3.3邏輯運(yùn)算指令TMS320C54x的邏輯運(yùn)算指令包括與指令、或指令、異或指令、移位指令及測(cè)試指令。
與指令,共5條,如表3.3.10。
表3.3.10與指令或指令,共5條,如表3.3.11。表3.3.11或指令
異或指令,共5條,如表3.3.12。表3.3.12異或指令移位指令共6條,如表3.3.13
表3.3.13移位指令測(cè)試指令共5條,如表3.3.14
表3.3.14測(cè)試指令3.3.4程序控制指令TMS320C54x的程序控制指令包括分支轉(zhuǎn)移指令、子程序調(diào)用指令、中斷指令、返回指令、堆棧操作指令及其他程序控制指令,分別敘述如下。分支轉(zhuǎn)移指令共6條,如表3.3.15:
表3.3.15分
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度航空行業(yè)競(jìng)業(yè)協(xié)議敬業(yè)精神承諾合同
- 二零二五年度海洋石油平臺(tái)聘用駕駛員安全服務(wù)合同
- 2025年度高爾夫球場(chǎng)草坪除草與養(yǎng)護(hù)承包合同
- 二零二五年度企業(yè)法律咨詢法律顧問(wèn)聘用合同
- 2025年度旅游景區(qū)資源管理與保護(hù)合同示范
- 2025年度火鍋店供應(yīng)鏈金融支持服務(wù)合同
- 2025年度家庭裝修合同書
- 2025年度餐飲企業(yè)食品安全風(fēng)險(xiǎn)控制合作協(xié)議
- 二零二五年度勞動(dòng)合同范本-試用期廣告?zhèn)髅叫袠I(yè)
- 2025年度船舶工程技術(shù)研究與成果轉(zhuǎn)化合同
- 教師招聘(教育理論基礎(chǔ))考試題庫(kù)(含答案)
- 2024年秋季學(xué)期學(xué)校辦公室工作總結(jié)
- 鋪大棚膜合同模板
- 長(zhǎng)亭送別完整版本
- 智能養(yǎng)老院視頻監(jiān)控技術(shù)方案
- 你比我猜題庫(kù)課件
- 無(wú)人駕駛航空器安全操作理論復(fù)習(xí)測(cè)試附答案
- 建筑工地春節(jié)留守人員安全技術(shù)交底
- 默納克-NICE1000技術(shù)交流-V1.0
- 蝴蝶蘭的簡(jiǎn)介
- 老年人心理健康量表(含評(píng)分)
評(píng)論
0/150
提交評(píng)論