




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第3章TMS320C54x的指令系統(tǒng) 知識要點(diǎn): 本章涉及的內(nèi)容包括TMS320C54x指令系統(tǒng)尋址方式的分類和功能,指令系統(tǒng)中的常用符號、縮略語和運(yùn)算符,數(shù)據(jù)傳送、算術(shù)運(yùn)算、邏輯運(yùn)算、程序控制、并行操作和重復(fù)操作指令。3.1 尋址方式 指令的尋址方式是指硬件尋找指令指定的參與運(yùn)算的操作數(shù)的方法。 TMS320C54x有7種基本的數(shù)據(jù)尋址方式:立即尋址、絕對尋址、累加器尋址、直接尋址、間接尋址、存儲器映像寄存器尋址和堆棧尋址。 表3.1.1列出了尋址方式中用到的一些縮略語名稱及其含義。 縮寫符號含義Smem16位單數(shù)據(jù)存儲器操作數(shù)Xmem在雙操作數(shù)指令及某些單操作數(shù)指令中所用的16位雙數(shù)據(jù)存儲
2、器操作數(shù),從DB總線上讀出Ymem在雙操作數(shù)指令中所用的16位雙數(shù)據(jù)存儲器操作數(shù),從CB總線上讀出;在讀同時并行寫的指令中表示寫操作數(shù)dmad16位立即數(shù)數(shù)據(jù)存儲器地址(065535)pmad16位立即數(shù)程序存儲器地址(065535)PA16位立即數(shù)I/O口地址(065535)src源累加器(A或B)dst目的累加器(A或B)lk16位長立即數(shù)表3.1.1部分尋址縮略語3.1.1 立即尋址 立即尋址主要用于初始化,其特點(diǎn)是指令中包含有一個固定的立即數(shù),因此沒有尋找數(shù)據(jù)地址的過程。 在一條指令中的立即數(shù)有短立即數(shù)和長立即數(shù)兩類。 立即數(shù)的長度由使用的指令類型決定。 表3.1.2列出了可以包含立即
3、數(shù)的指令,并指出了立即數(shù)的位數(shù)。 3位或5位立即數(shù) 8位立即數(shù) 9位立即數(shù) 16位立即數(shù) LD FRAME LD RPT LDADD ADDM AND ANDM BITF CMPMLD MAC OR ORMRPT RPTZ ST STM SUB XOR XORM表3.1.2 支持立即尋址的指令 在立即尋址方式指令中,應(yīng)在數(shù)值或符號前面加一個“#”,表示一個立即數(shù),以區(qū)別于地址。例如,將一個十六進(jìn)制數(shù)80H,裝入累加器A的指令為: LD#80H,A3.1.2 絕對尋址 絕對尋址利用16位地址尋址存儲單元,其特點(diǎn)是指令中包含一個固定地址。 絕對尋址有以下四種類型: 數(shù)據(jù)存儲器地址(dmad)尋址
4、該尋址類型用于確定操作數(shù)存于數(shù)據(jù)存儲單元的地址。 語法是使用一個程序標(biāo)號或一個數(shù)字來指定數(shù)據(jù)空間的一個地址。 例如,將數(shù)據(jù)存儲器EXAM1地址單元中的數(shù)據(jù)復(fù)制到AR5寄存器指向的數(shù)據(jù)存儲單元中去,即 MVKDEXAM1,*AR5 其中EXAM1是16位地址dmad值。 程序存儲器地址(pmad)尋址 該尋址類型用于確定程序存儲器中的一個地址。 語法是使用一個符號或具體的數(shù)字來指定程序空間的一個地址。 例如,將程序存儲器TABLE地址單元中的內(nèi)容復(fù)制到AR2寄存器所指向的數(shù)據(jù)存儲單元中,即 MVPDTABLE,*AR2 其中TABLE是16位地址pmad值。 端口(PA)尋址 該尋址類型是用一個
5、符號或一個數(shù)字來確定外部I/O端口的地址。 例如,把一個數(shù)從端口位FIFO的I/O口復(fù)制到AR5寄存器所指向的數(shù)據(jù)存儲單元中,即 PORTRFIFO,*AR5 其中FIFO是I/O端口地址PA。 *(1K)尋址 該尋址類型是使用一個指定數(shù)據(jù)空間的地址來確定數(shù)據(jù)存儲器中的一個地址。 例如,把地址為PN的數(shù)據(jù)單元中的數(shù)據(jù)裝到累加器A中,即 LD*(PN),A3.1.3 累加器尋址 累加器尋址是將累加器的內(nèi)容作為地址去訪問程序存儲器單元,即將累加器中的數(shù)作為地址,用來對存放數(shù)據(jù)的程序存儲器尋址。有兩條指令可以采用累加器尋址。 READ ASmem WRIT ASmem3.1.4 直接尋址 直接尋址是
6、利用數(shù)據(jù)指針和堆棧指針尋址,其特點(diǎn)是數(shù)據(jù)存儲器地址由基地址和偏移地址共同構(gòu)成,共16位。 基地址位于數(shù)據(jù)存儲器地址的高9位,偏移地址位于數(shù)據(jù)存儲器地址(dmad)的低7位。 下面分別給出了直接尋址的指令代碼格式以及各位說明。 操作碼 I=0 數(shù)據(jù)存儲器地址 158 7 60 位 名稱 功能158 操作碼 這8位包含了指令的操作碼 7 I I=0,表示指令使用的尋址方式位直接尋址60 數(shù)據(jù)存儲器地址 這7位包含了指令的數(shù)據(jù)存儲器地址偏移 表3.1.3 直接尋址的各位說明圖3.1.1 直接尋址的指令代碼格式 DP和SP都可以與dmad偏移結(jié)合產(chǎn)生實(shí)際的地址。 位于狀態(tài)寄存器ST1的CPL位可以選擇
7、采用哪種方式生成實(shí)際的地址。當(dāng)CPL=0,以數(shù)據(jù)頁指針寄存器DP中的9位高位,以指令中的7位為低位,共同構(gòu)成16位數(shù)據(jù)存儲單元的地址,如下圖: 9位數(shù)據(jù)頁指針DP值 7位IR值 157 60圖3.1.2 CPL=0時, 16位數(shù)據(jù)存儲單元的地址 當(dāng)CPL=1時,將堆棧指針SP的16位地址與指令中的7位地址相加,形成16位的數(shù)據(jù)存儲器地址,如圖: 16位堆棧指針SP 150 0 0 0 0 0 0 0 0 0 7位IR值 157 60 有效存儲地址圖3.1.3 CPL=1時, 16位數(shù)據(jù)存儲單元的地址3.1.5 間接尋址 間接尋址是利用輔助寄存器內(nèi)容作為地址指針訪問存儲器。 TMS320C54x
8、有8個16位輔助寄存器(AR0AR7)。每一個寄存器都可以用來尋址64K數(shù)據(jù)存儲空間中任何一個單元。算數(shù)運(yùn)算單元(ARAU0、ARAU1)根據(jù)輔助寄存器的內(nèi)容進(jìn)行操作,完成16位無符號算術(shù)運(yùn)算。 間接尋址的靈活性體現(xiàn)在:不僅能從存儲器中讀或?qū)懸粋€單16位的數(shù)據(jù)操作數(shù),而且能在一條指令中訪問兩個數(shù)據(jù)存儲單元。 單操作數(shù)尋址 下圖列出了單操作數(shù)間接尋址指令的格式: 表3.1.4列出了單操作數(shù)間接尋址指令的各位說明 158 7 63 20圖3.1.4單操作數(shù)間接尋址指令的格式 操作碼 I=1 MOD ARF 表3.15列出了16種單操作數(shù)間接尋址的功能及其說明。位名稱功能158 操作碼8位域包含了指
9、令操作碼7II=1,表示間接尋址方式63MOD定義尋址方式的類型20ARF定義了尋址所使用的輔助寄存器,CMPT=0時,則ARF=0確定輔助寄存器,這種方式下,ARP一直為0。 CMPT=1時,若ARF=0,用ARP選擇輔助寄存器,否則用ARF確定,當(dāng)訪問完成后,把ARF的值裝入ARP。表3.1.4 單操作數(shù)間接尋址指令的各位說明表3.1.5 單數(shù)據(jù)存儲器操作數(shù)間接尋址類型 上表中還有兩種特殊的間接尋址方式:循環(huán)尋址方式上表中還有兩種特殊的間接尋址方式:循環(huán)尋址方式和位倒序?qū)ぶ贩绞?。和位倒序?qū)ぶ贩绞健?循環(huán)尋址循環(huán)尋址 在信號處理常用的卷積、相關(guān)、在信號處理常用的卷積、相關(guān)、FIR濾波算法中,
10、都需濾波算法中,都需要在存儲器中實(shí)現(xiàn)一個循環(huán)緩沖區(qū),它是一個包含最新數(shù)要在存儲器中實(shí)現(xiàn)一個循環(huán)緩沖區(qū),它是一個包含最新數(shù)據(jù)的滑動窗口。據(jù)的滑動窗口。 在尋址計(jì)算過程中,新進(jìn)來的數(shù)據(jù)會覆蓋較早的數(shù)據(jù)。在尋址計(jì)算過程中,新進(jìn)來的數(shù)據(jù)會覆蓋較早的數(shù)據(jù)。 循環(huán)尋址是實(shí)現(xiàn)循環(huán)緩沖區(qū)的關(guān)鍵。循環(huán)尋址是實(shí)現(xiàn)循環(huán)緩沖區(qū)的關(guān)鍵。 寄存器用于確定寄存器用于確定循環(huán)緩沖區(qū)的大小。長度為的循環(huán)緩沖區(qū)的大小。長度為的循環(huán)緩沖區(qū)必須從一個位(是滿足的次方條循環(huán)緩沖區(qū)必須從一個位(是滿足的次方條件的最小整數(shù))邊界開始。件的最小整數(shù))邊界開始。 例如:例如:長度長度R=32循環(huán)緩沖區(qū)必須從低循環(huán)緩沖區(qū)必須從低6位為位為0的地
11、址的地址xxxx xxxx xxx00 0000(N=6, 2632)開始,同時用以下指令將)開始,同時用以下指令將R值加載到值加載到BK中:中: STM#32 BK 循環(huán)尋址時,要指定一個循環(huán)尋址時,要指定一個ARx指向循環(huán)緩沖區(qū)的指向循環(huán)緩沖區(qū)的一個單元。該一個單元。該ARx的低的低N位置位置0后所得到的值為循后所得到的值為循環(huán)緩沖區(qū)的環(huán)緩沖區(qū)的有效基地址有效基地址。用。用BK的低的低N位代替位代替ARx的低的低N位所得到的值為位所得到的值為循環(huán)緩沖區(qū)的尾地址循環(huán)緩沖區(qū)的尾地址。 ARx的低的低N位就是循環(huán)緩沖區(qū)的位就是循環(huán)緩沖區(qū)的index,step就是就是加到加到ARx或從或從ARx中
12、減去的值。循環(huán)尋址算法如中減去的值。循環(huán)尋址算法如下:下: If 0index+stepBK; index=index+step Else if index+step BK; index=index+step-BK Else if index+step0; index=index+step+BK 實(shí)際上是以BK寄存器中的值為模的取模運(yùn)算。 位倒序?qū)ぶ?位倒序?qū)ぶ房梢蕴岣逨FT等算法效率。 例如16點(diǎn)FFT的位倒序?qū)ぶ啡绫?.1.6所示。 C54x提供的位倒序?qū)ぶ饭δ埽岣吡嗽贔FT算法中使用存儲器的效率及其執(zhí)行速度。 設(shè)FFT長度N=16,則AR0賦值為8,AR2表示在存儲區(qū)中數(shù)據(jù)的基地址(0
13、110 0000),位倒序讀入數(shù)據(jù):*AR2+0B;AR2=0110 0000 (第0個值) *AR2+0B; AR2=0110 1000 (第1個值) *AR2+0B; AR2=0110 0100 (第2個值) *AR2+0B; AR2=0110 1100 (第3個值) *AR2+0B; AR2=0110 0010 (第4個值) *AR2+0B; AR2=0110 1010 (第5個值) *AR2+0B; AR2=0110 0110 (第6個值) *AR2+0B; AR2=0110 1110 (第7個值)表3.1.6 位倒序?qū)ぶ贩祷乇竟?jié) 雙操作數(shù)尋址 雙操作數(shù)尋址用于完成執(zhí)行2次讀操作或者1
14、次讀和1次并行存儲操作。這些指令代碼都是1個字長,而且只能以間接尋址方式進(jìn)行操作。 兩個數(shù)據(jù)存儲器操作數(shù)由Xmem和Ymem 表示,Xmem是讀操作數(shù),Ymem是在讀兩個操作數(shù)時表示讀操作數(shù),在1次讀同時并行1次寫的指令中表示寫操作。 下圖列出了雙操作數(shù)尋址的指令代碼格式: 操作碼 Xmod Xar Ymod Yar 158 7 6 5 4 3 2 1 0 位位 名稱名稱 功能功能158 操作碼操作碼 8位代碼包含了指令的操作碼位代碼包含了指令的操作碼76 Xmod 定義了用于尋址定義了用于尋址Xmem操作數(shù)的間接尋址方式的類型操作數(shù)的間接尋址方式的類型54 Xar 2位代碼確定了存儲位代碼確
15、定了存儲Xmem地址的輔助寄存器地址的輔助寄存器32 Ymod 定義了用于尋址定義了用于尋址Ymem操作數(shù)的間接尋址方式類型操作數(shù)的間接尋址方式類型10 Yar 2位代碼確定存儲位代碼確定存儲Ymem地址的輔助寄存器地址的輔助寄存器表3.1.7 雙操作數(shù)的各位說明:圖3.1.5雙操作數(shù)尋址的指令代碼格式 由于只有2位可以用于選擇輔助寄存器,所以根據(jù)Xar或Yar的值可以選擇4個寄存器。 下表列出了Xar或Yar同輔助寄存器的對應(yīng)關(guān)系: Xar或Yar值 輔助寄存器 00 AR2 01 AR3 10 AR4 11 AR5表3.1.8 Xar或Yar同輔助寄存器的對應(yīng)關(guān)系 下表列出了雙操作數(shù)間接尋
16、址的類型: 操作碼語法 功能 說明 *ARx 地址= ARx ARx中的內(nèi)容是數(shù)據(jù)存儲地址 *ARx- 地址= ARx 尋址后,ARx的地址減1 ARx=ARx-1 *ARx+ 地址=ARX 尋址后,ARx的地址加1 Arx=ARx+1 *ARx+0% ARx=Circ(ARx+AR0) 尋址后,AR0以尋址方式加到ARx中 地址=ARx表3.1.9 雙操作數(shù)間接尋址的類型3.1.6 存儲器映像寄存器尋址 存儲器映像寄存器(MMR)尋址用于修改存儲器映像寄存器的值,而不影響當(dāng)前數(shù)據(jù)頁指針(DP)或堆棧指針(SP)的值。由于DP和SP的值不需要修改,所以寫寄存器操作的開銷最小。 存儲器映像寄存器
17、尋址可以工作在直接和間接尋址方式下。有以下兩種產(chǎn)生MMR地址的方法。 直接尋址。 在直接尋址方式中,不管當(dāng)前DP或SP的值如何,強(qiáng)制數(shù)據(jù)存儲器地址的高9位為0。 利用指令中數(shù)據(jù)存儲器地址的低7位訪問MMR,相當(dāng)于基地址為0的直接尋址方式。 間接尋址。 在間接尋址方式中,使用當(dāng)前輔助寄存器的低7位作為地址訪問MMR。指令執(zhí)行后,輔助寄存器中的高9位清為0。3.1.7 堆棧尋址 系統(tǒng)堆棧用于在發(fā)生中斷或子程序調(diào)用時自動存放程序計(jì)數(shù)器(PC)中的值。堆棧也能用來保護(hù)現(xiàn)場或傳送參數(shù)。 C54x的堆棧是從高地址向低地址方向填入。處理器使用一個16位堆棧指針(SP)來對堆棧進(jìn)行管理,SP始終指向存放在堆棧
18、中的最后一個元素。 有四條指令使用堆棧尋址方式: PSHD,將數(shù)據(jù)存儲器中的一個數(shù)壓入堆棧。 PSHM,將一個存儲器映像寄存器(MMR) 中的值壓入堆棧。 POPD,從堆棧彈出一個數(shù)到數(shù)據(jù)存儲單元。 POPM,從堆棧彈出一個數(shù)到存儲器映像寄存器(MMR)。 執(zhí)行壓入操作時,是先減小SP后再將數(shù)據(jù)壓入堆棧的;而執(zhí)行堆棧彈出操作時,則先從堆棧彈出數(shù)據(jù),然后再增加SP 的值。3.2 TMS320C54x指令的表示方法 TMS320C54x的助記符指令時由操作碼和操作數(shù)兩部分組成。在進(jìn)行匯編以前,操作碼和操作數(shù)都是用助記符表示。3.2.1 指令系統(tǒng)中的符號 表3.2.1是指令系統(tǒng)中的符號和縮略語。 表
19、3.2.1 指令系統(tǒng)中的符號和縮略語3.2.2 指令系統(tǒng)中的運(yùn)算符 表3.2.2列出了表達(dá)式中可用的運(yùn)算符號及運(yùn)算的優(yōu)先級。 符號+ - !取正、取負(fù)、按位求補(bǔ)、邏輯負(fù)從右到左* / %乘法、除法、求模從左到右+ -加法、減法從左到右指數(shù)從左到右左移、右移從左到右 大于、大于或等于從左到右 !=不等于從左到右=等于從左到右&按位與運(yùn)算從左到右按位異或運(yùn)算從左到右按位或運(yùn)算從左到右3.3 TMS320C54x的指令系統(tǒng) TMS320C54x的指令系統(tǒng)共有129條基本命令,由于操作數(shù)的尋址方式不同,由它們可以派生出205條指令。 按指令的功能分類,可以分成數(shù)據(jù)傳送指令、算術(shù)運(yùn)算指令、邏輯運(yùn)
20、算指令、程序控制指令、并行操作指令和重復(fù)操作指令。3.3.1 數(shù)據(jù)傳送指令 數(shù)據(jù)傳送指令是從存儲器中將源操作數(shù)傳送到目的操作數(shù)所指定的存儲器中。 C54x的數(shù)據(jù)傳送指令包括裝載指令、存儲指令、混合指令和存儲指令。 裝載指令共21條,用于立即數(shù)或存儲器內(nèi)容賦給目的寄存器。 表3.3.1列出了這些指令的語法表示、運(yùn)行結(jié)果以及相關(guān)注釋。 表3.3.1 裝載指令 存儲指令共18條,用于將源操作數(shù)或立即數(shù)存入指定存儲器或寄存器。 表3.3.2列出了存儲指令的語法表示、運(yùn)行結(jié)果及注釋。 表3.3.2 存儲指令 混合裝載和存儲指令共12條,它的語法表示、運(yùn)行結(jié)果及注釋如表3.3.3。表3.3.3 混合裝載和
21、存儲指令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)
22、算指令 特殊運(yùn)算指令 特殊運(yùn)算指令共15條,如表3.3.9 表3.3.9 特殊運(yùn)算指令3.3.3 邏輯運(yùn)算指令 TMS320C54x的邏輯運(yùn)算指令包括與指令、或指令、異或指令、移位指令及測試指令。 與指令,共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移位指令測試指令共5條,如表3.3.14表3.3.14 測試指令3.3.4 程序控制指令 TMS320C54x的程序控制指令包括分支轉(zhuǎn)移指令、子程序調(diào)用指令、中斷指令、返回指令、堆棧操作指令及其他程序控制指令,分別敘述如下。 分支轉(zhuǎn)移指令共6條,如表3.3.15: 表3.3.15 分支轉(zhuǎn)移指令 子程序調(diào)用指令共5條,如表3.3.16:表3.3.16 子程序調(diào)用指令 中斷指令共2條,如表3.3.17表3.3.17 中斷指令 返回指令共6條,如表3.3.18表3.3.18返回指令堆棧操作指令共5條,如表3.3.19表3.3.19 堆棧操作指令其他程序控制指令共7條,如表3.3.20表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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年犯罪意識考試題及答案
- 《電商品流通企業(yè)會計(jì) 第4版》課件匯 倪明輝 第6-10章 商品流轉(zhuǎn)基本業(yè)務(wù)核算 -進(jìn)出口貿(mào)易的核算
- 2025年中醫(yī)技能考試試題及答案
- 2025年一級簡譜樂理試題及答案
- 2025年竇房結(jié)考試題及答案
- 2025年情感心靈測試題及答案
- 2025年語數(shù)趣味測試題及答案
- 《企業(yè)內(nèi)部控制與制度設(shè)計(jì)》期末考試A卷
- 2025年行政執(zhí)法面試試題及答案
- 2025年表面工程學(xué)試題及答案
- 機(jī)電控制與可編程序控制器課程設(shè)計(jì)報(bào)告
- 簡版?zhèn)€人征信報(bào)告模板
- 森林防火主題教育班會PPT
- 船舶安檢缺陷處理建議表籍國內(nèi)航行海船
- 輻照交聯(lián)電線電纜型號說明
- 公路工程決算編制辦法(交公路發(fā)2004-507號)附表
- 礦山機(jī)械無人駕駛項(xiàng)目可行性研究報(bào)告模板
- 預(yù)充氣競技步槍 標(biāo)準(zhǔn)A4靶紙
- 避免同業(yè)競爭承諾函
- 產(chǎn)品批量質(zhì)量事故追責(zé)管理規(guī)范
- VSC中壓真空接觸器無法分閘的原因分析及其對策
評論
0/150
提交評論