




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第3章 TMS320C54x的指令系統(tǒng)3.1 尋址方式 3.2 TMS320C54x的指令表示方法 3.3 TMS320C54x的指令系統(tǒng) 3.1 尋址方式 當硬件執(zhí)行指令時,尋找指令所指定的參與運算的操作數(shù)的方法尋址方式。 根據(jù)程序的要求采用不同的尋址方式,可以有效地縮短程序的運行時間和提高代碼執(zhí)行效率。 3.1 尋址方式 C54x有7種基本的數(shù)據(jù)尋址方式: 立即尋址 絕對尋址 累加器尋址 直接尋址 間接尋址 存儲器映像 寄存器尋址 堆棧尋址:由指令提供一個操作數(shù):由指令提供一個操作數(shù)地址 :以累加器的內(nèi)容為地址訪問程序空間某單元:尋址地址為DP或SP的值加上指令提供的偏移量:利用輔助寄存器
2、訪問存儲器 :用來改變映像寄存器,但不影響DP或SP的值:用來管理系統(tǒng)堆棧中的操作3.1.1 立即尋址 指令中含有執(zhí)行指令所需的操作數(shù)。操作數(shù)緊隨操作碼存放在程序存儲器中。 例如: LD #F180H,A ;將立即數(shù)F180H加載到A程序存儲器操作碼立即數(shù)F180 立即數(shù)的數(shù)值形式: 短立即數(shù)。3、5、8、9位,單字指令; 長立即數(shù)。16位,雙字指令。 特點:指令中含有一個固定的立即數(shù),運行速度較快,但需占用程序存儲空間,并且數(shù)值不能改變。 用途:用于表示常數(shù)或?qū)拇嫫鞒跏蓟W⒁猓涸诹⒓磳ぶ返闹噶钪?應(yīng)在數(shù)值或符號前面加一個“#”,表示是一個立即數(shù),以區(qū)別于地址。 3.1.2 絕對尋址 指令
3、中含有所要尋找的操作數(shù)的16位存儲單元地址。 16位地址表示形式: 地址標號,如:TABLE; 16位符號常量,如:89AB、1234。 例如: MVKD TABLE,*AR1 ;將數(shù)據(jù)存儲器TABLE為地址 的單元數(shù)據(jù)送入AR1寄存器 指定的數(shù)據(jù)存儲單元中 LD *(DATA),A ;將DATA指定的數(shù)據(jù)存儲單元 中的數(shù)據(jù)送入累加器A中 特點:指令中包含一個固定的16位地址,能尋 址所有數(shù)據(jù)存儲空間,但運行速度慢, 需要較大的存儲空間。 用途:用于對速度要求較低的場合。3.1.2 絕對尋址 絕對尋址是利用16位地址來尋址操作數(shù)的存儲單元。由于絕對地址代碼的位數(shù)為16位,所以絕對地址尋址的指令
4、至少應(yīng)為2個字長。 絕對尋址有四種類型 : 數(shù)據(jù)存儲器地址尋址; 程序存儲器地址尋址; 端口尋址; *(lk)尋址。 1.數(shù)據(jù)存儲器地址尋址 用于確定操作數(shù)存于數(shù)據(jù)存儲單元的地址。 例如,將數(shù)據(jù)存儲器EXAM1地址單元中的數(shù)據(jù)復(fù)制到AR5寄存器所指向的數(shù)據(jù)存儲單元中。 MVKD EXAM1, * AR5 語法:使用一個程序標號或一個數(shù)字來指定數(shù) 據(jù)空間的一個地址。數(shù)據(jù)存儲器的16位地址2.程序存儲器地址尋址 用于確定程序存儲器中的一個地址。 例如,將程序存儲器TABLE地址單元中的內(nèi)容復(fù)制到AR2寄存器所指向的數(shù)據(jù)存儲單元中。 MVPD TABLE, * AR2 語法:使用一個符號或具體的數(shù)字
5、來指定程序 空間的一個地址。 程序存儲器的16位地址3.端口(PA)尋址 用一個符號或一個數(shù)字來確定外部I/O端口的地址。 例如,把一個數(shù)從端口為FIFO的I/O口復(fù)制到AR5寄存器所指向的數(shù)據(jù)存儲單元中。 PORTR FIFO, * AR5 I/O端口地址 4. *(1k)尋址 使用一個符號或者一個常數(shù)來確定數(shù)據(jù)存儲器中的一個地址。 例如,把地址為2000H的數(shù)據(jù)單元中的數(shù)據(jù)裝到累加器A中。 LD *(2000H), A 注意:*(1k)尋址的指令不能與循環(huán)指令(RPT,RPTZ)一起使用。 3.1.3 累加器尋址 將累加器的內(nèi)容作為地址去訪問程序存儲單元,即將累加器中的內(nèi)容作為地址,用來對
6、存放數(shù)據(jù)的程序存儲器尋址。 例如: READA Smem ;將A中的數(shù)據(jù)作為地址尋址程序 存儲器中的數(shù)據(jù),并將數(shù)據(jù)送 入Smem指定的數(shù)據(jù)存儲單元。 WRITA Smem ;將Smem指定的數(shù)據(jù)存儲單元中的 數(shù)據(jù),寫入A所指定的程序存儲 單元。 用途:用于完成程序存儲空間與數(shù)據(jù)存儲空間之間的數(shù)據(jù)傳輸。 注意: 大多數(shù)C54x用A的低16位作為程序存儲器的地址,而C548和C549是以A的低23位作為程序存儲器地址,C5402是以A的低20位作為程序存儲器地址; 只能使用累加器A尋址程序空間。 累加器A用來尋址程序空間。Smem用來尋址數(shù)據(jù)空間。3.1.4 直接尋址 利用數(shù)據(jù)指針DP和堆棧指針S
7、P尋址。 16位數(shù)據(jù)存儲器地址由基地址(數(shù)據(jù) 頁指針DP或堆棧指針SP)和偏移地址 (dmad)共同構(gòu)成。 第3章 TMS320C54x的指令系統(tǒng) 指令格式:15 8 7 6 0 操 作 碼 I = 0 數(shù)據(jù)存儲器地址(dmad) 指令的8位操作碼指令的標識符表示指令為直接尋址 數(shù)據(jù)存儲器地址 包含了數(shù)據(jù)存儲器偏移地址 特點: 指令中只含有數(shù)據(jù)存儲器的低7位地 址(偏移地址dmad);3.1.4 直接尋址 所要尋址的數(shù)據(jù)存儲器16位地址是由基地址和偏移地址構(gòu)成。 基地址: 數(shù)據(jù)頁指針DP(9位); 堆棧指針SP。 當CPL=0時,數(shù)據(jù)存儲器16位地址由DP和偏移地址dmad構(gòu)成; 當CPL=1
8、時,數(shù)據(jù)存儲器16位地址由SP加偏移地址dmad構(gòu)成。第3章 TMS320C54x的指令系統(tǒng) 地址形成過程:當CPL=0時,直接尋址指 令158760操作碼I=0dmad頁指針DP(位于ST0中)9位數(shù)據(jù)頁指針DP9位數(shù)據(jù)頁指針DP高9位dmad低7位16位數(shù)據(jù)存儲器地址第3章 TMS320C54x的指令系統(tǒng) 地址形成過程:當CPL=1時,直接尋址指 令158760操作碼I=0dmad高9位dmad低7位16位數(shù)據(jù)存儲器地址16位堆棧指針SP堆棧指針SPSP+dmad16位SP+dmad第3章 TMS320C54x的指令系統(tǒng)3.1.4 直接尋址 DP地址的范圍是從0511(29-1),將存儲器
9、分成512頁。 以DP為基準的直接尋址是由DP值確定是512頁中的哪一頁,由dmad確定是該頁中的哪一個單元。 7位dmad范圍是從0127,每頁有128個可以訪問的單元。 SP可以指向存儲器中的任意一個地址。dmad可以指向當前頁中具體的單元,從而允許訪問存儲器任意基地址中的連續(xù)的128個單元 第3章 TMS320C54x的指令系統(tǒng)3.1.4 直接尋址 直接尋址標識: 變量前加,如x; 在偏移量前加,如5。 利用直接尋址可以在不改變DP或SP的情況下,隨機尋址128個存儲單元中的任何一個單元。 直接尋址的優(yōu)點:每條指令只需要一個字。第3章 TMS320C54x的指令系統(tǒng)3.1.4 直接尋址
10、例1:數(shù)據(jù)存儲器存儲數(shù)據(jù)如圖所示,采用數(shù)據(jù)頁指針DP直接尋址,完成x,y單元的兩個數(shù)據(jù)求和。RSBX CPL數(shù)據(jù)存儲器地址數(shù)據(jù)01800001.X:01FF1000y:02000500.第3頁第4頁LD #3,DPLD x,AADD y,A;CPL復(fù)位;立即數(shù)3賦給DP;x單元的數(shù)據(jù)送入A;完成x和y單元的數(shù) 據(jù)相加LD #3,DPLD #3,DPLD x,ALD x,A01FF100001FF1000ADD y,A0180000101800001ADD y,A第3章 TMS320C54x的指令系統(tǒng)3.1.4 直接尋址 例2:數(shù)據(jù)存儲器存儲數(shù)據(jù)如圖所示,利用堆棧指針SP直接尋址,求堆棧中兩個數(shù)
11、x,y的和。SSBX CPL數(shù)據(jù)存儲器004001000050A000.LD 1,AADD 2,A;CPL置位;x單元的數(shù)據(jù)送入A;完成x和y單元的數(shù) 據(jù)相加12SPx:y:SPx:y:0000 0010 0000 0000SP000 0001dmax000 0010dmay0 2 0 1X地址0 2 0 2y地址SSBX CPLLD 1,Ax:0200H1=0201H0100A00 0000 01000100 x:ADD 2,A2=0202Hy:00500202H0050000 0000510+y:005000 0000 015000 0000 0150A執(zhí)行結(jié)果第3章 TMS320C54x
12、的指令系統(tǒng)3.1.4 直接尋址 直接尋址特點: 所尋址數(shù)據(jù)存儲器的16位地址是由DP或SP 與7位偏移地址dmad構(gòu)成; 可在單周期尋址128個單元; 尋址速度快,能進行流水線并行操作。用途:主要用于要求運算速度較快的場合。注意: 上述兩種直接尋址方式是相互排斥的; 采用DP尋址時,要注意數(shù)據(jù)所在的頁面 指針。第3章 TMS320C54x的指令系統(tǒng)3.1.5 間接尋址 是根據(jù)輔助寄存器(AR0-AR7)給出的16位地址進行尋址 8個輔助寄存器(AR0-AR7),由一 個輔助寄存器指針(ARP 3-bit)來指定輔助寄存器算術(shù)單元(ARAU)作16-bit 無符號數(shù)運算,決定一個新的地址,裝 入
13、輔助寄存器中的一個第3章 TMS320C54x的指令系統(tǒng)3.1.5 間接尋址 第3章 TMS320C54x的指令系統(tǒng)3.1.5 間接尋址 1. 單操作數(shù)尋址 用來完成存儲單元中16位單數(shù)據(jù)的讀寫操作。 在使用AR0-AR7尋址時,AR的內(nèi)容相當靈活:將該AR的內(nèi)容加1或減1,再尋址(循環(huán)常用)將該AR的內(nèi)容加上或減去AR0的內(nèi)容,再尋址。將該AR的內(nèi)容加上或減去一個立即數(shù),再尋址。第3章 TMS320C54x的指令系統(tǒng)單操作數(shù)間接尋址形式操作句法功 能說 明 * ARx 地址=ARx ARx的內(nèi)容為數(shù)據(jù)存儲器地址 * ARx- 地址=ARx ARx=ARx-1 尋址結(jié)束后,ARx地址減1 。
14、* ARx+ 地址=ARx ARx=ARx+1 尋址結(jié)束后,ARx地址加1。 * +ARx ARx=ARx+1 地址=ARx ARx中的地址加1后,再尋址。 * ARx-0 地址=ARx ARx=ARx-AR0 尋址結(jié)束后,從ARx中減去AR0的值。 * ARx+0 地址 = ARx ARx=ARx+AR0 尋址結(jié)束后,把AR0加到ARx中。 * ARx(lk) 地址=ARx+lk ARx=ARx以ARx與16位數(shù)之和作為地址,尋址結(jié)束后,ARx中的值不變。 * +ARx(lk) 地址=ARx+lk ARx=ARx+lk將一個16位帶符號數(shù)加到ARx,然后尋址。 ADD *AR1,8,A ;將
15、當前輔助寄存器所指的地址里的數(shù)據(jù),左移8-bit后加給AccAADD *AR1+,8,A,AR4 ;數(shù)據(jù)左移,加給AccA后,當前輔助寄存器加1,選擇輔助寄存器AR4ADD *AR1+0,8,A ;執(zhí)行加法后,將AR0的內(nèi)容加給當前輔助寄存器ADD *AR1+,8,A;數(shù)據(jù)左移,加給AccA后,當前輔助寄存器加13.1.5 間接尋址 第3章 TMS320C54x的指令系統(tǒng)3.1.5 間接尋址 2. 雙操作數(shù)尋址 用于完成執(zhí)行2次讀操作或者1次讀和1次的并行存儲操作。這些指令代碼都是1個字長,而且只能以間接尋址方式進行操作。 兩個數(shù)據(jù)存儲器操作數(shù)由Xmem和Ymem表示。 Xmem:讀操作數(shù);
16、Ymem: 在兩次讀操作的指令中,表示一個讀操作數(shù); 在一次讀和一次寫的指令中,表示寫操作數(shù)。 第3章 TMS320C54x的指令系統(tǒng)2. 雙操作數(shù)尋址 用于完成執(zhí)行2次讀操作或者1次讀和1次的并行存儲操作。這些指令代碼都是1個字長,而且只能以間接尋址方式進行操作。 雙操作數(shù)間接尋址的類型 操作碼語法功 能 說 明 * ARx地址=ARxARx中的內(nèi)容是數(shù)據(jù)存儲器地址 * ARx-地址=ARxARx=ARx-1尋址后,ARx的地址減1 * ARx+地址=ARxARx=ARx+1尋址后,ARx的地址加1 第3章 TMS320C54x的指令系統(tǒng)2. 雙操作數(shù)尋址 可用于雙操作數(shù)間接尋址的輔助寄存器
17、有4個,分別是:AR2、AR3、AR4、AR5MPY *AR2,*AR3,A;將AR2和AR3所指地址里的數(shù)據(jù)相乘,乘積放入ACCA第3章 TMS320C54x的指令系統(tǒng) 間接尋址特點:通過輔助寄存器和輔助寄存器指針來尋址數(shù)據(jù)空間存儲單元,并自動實現(xiàn)增量、減量、變址尋址、循環(huán)尋址等。 用途:用于需要按固定步長尋址的場合。3.1.5 間接尋址 第3章 TMS320C54x的指令系統(tǒng)3.1.6 存儲器映像寄存器尋址 是一種不考慮DP和SP為何值,以0為基地址來訪問MMR的尋址方式。 主要用于修改存儲器映像寄存器的內(nèi)容。 1.采用直接尋址方式2.采用間接尋址方式 高9位數(shù)據(jù)存儲器地址置0,利用指令中
18、的低7位地址直接訪問MMR。 高9位數(shù)據(jù)存儲器地址置0,按照當前輔助寄存器ARx的低7位地址訪問MMR。 第3章 TMS320C54x的指令系統(tǒng)3.1.6 存儲器映像寄存器尋址 C54x共有8條指令可以進行MMR尋址。 LDM MMR,dst ;將MMR加載到累加器 MVDM dmad,MMR ;數(shù)據(jù)存儲器向MMR傳送數(shù)據(jù) MVMD MMR,dmad ;MMR向指定地址傳送數(shù)據(jù) MVMM MMRx,MMRy ;MMRx向MMRy傳送數(shù)據(jù) POPM MMR ;將數(shù)據(jù)從棧頂彈至MMR PSHM MMR ;將MMR數(shù)據(jù)壓入堆棧 STLM src,MMR ;累加器低位存入MMR STM #lk,MMR
19、 ;長立即數(shù)lk存入MMR第3章 TMS320C54x的指令系統(tǒng)3.1.6 存儲器映像寄存器尋址 MMR尋址特點: 尋址速度快,對MMR執(zhí)行寫操作開銷?。?可直接利用MMR的名稱快速訪問數(shù)據(jù)存儲空間的0頁資源; 只能尋址數(shù)據(jù)空間的0頁單元。 用途:主要用于不改變DP、SP的情況下,修改MMR中的內(nèi)容。 第3章 TMS320C54x的指令系統(tǒng)3.1.7 堆棧尋址 堆棧:當發(fā)生中斷或子程序調(diào)用時,用來自動保存PC內(nèi)容以及保護現(xiàn)場或傳送參數(shù)。 C54x的堆棧是向低地址生長,并由16位堆棧指針SP管理。SP總是指向棧頂。 堆棧尋址:利用SP指針,按照先進后出的原則進 行尋址。 當進棧操作時,SP先減小
20、,然后數(shù)據(jù)進入堆棧; 當出棧操作時,數(shù)據(jù)先出棧,然后SP增加。 第3章 TMS320C54x的指令系統(tǒng)3.1.7 堆棧尋址 進棧操作時,SP先減小,然后數(shù)據(jù)進入堆棧; 數(shù)據(jù)存儲器03FFH1234SP567813FFsmem SPSP-1,使SP指向03FEH;SP03FEH 數(shù)據(jù)進棧,SP=03FEH。13FFSP 出棧操作時,數(shù)據(jù)先出棧,然后SP增加。 XXXXsmem SP=03FEH,數(shù)據(jù)出棧;SP13FF SPSP+1,使SP指向03FFH。SP第3章 TMS320C54x的指令系統(tǒng)3.1.7 堆棧尋址 采用堆棧尋址的指令: PSHD Smem ;將Smem中的數(shù)據(jù)壓入堆棧 PSHM
21、 MMR ;將MMR中的數(shù)據(jù)壓入堆棧 POPD Smem ;將數(shù)據(jù)從棧頂彈至Smem中 POPM MMR ;將數(shù)據(jù)從棧頂彈至MMR中第3章 TMS320C54x的指令系統(tǒng)3.2 TMS320C54x的指令表示方法 C54x的助記符指令是由標號:、助記符、操作數(shù)列表、;注釋四部分組成。 例如:begin: LD #0FFh, A ;將立即數(shù)0FF傳送至A 助記符源操作數(shù)目的操作數(shù)注釋第3章 TMS320C54x的指令系統(tǒng)標號3.2.1 匯編程序語句格式 3.2.1 混編程序語句格式1.標號域第3章 TMS320C54x的指令系統(tǒng)對所有C54x的匯編語言指令和大多數(shù)的匯編偽指令,標號域為可選項。但
22、是偽指令.set和.equ在使用時必須有標號。標號必須從源語句的第一列開始書寫,一個標號最多允許有32個字符;標號可由下列字符組成:AZ、az、09、_和$,但是標號的第一個字符不能是數(shù)字,并且標號區(qū)分大小寫。標號后的:為可選項,當不使用標號時,源語句的第一列只能是空格、分號或星號3.2.1 混編程序語句格式1.標號域第3章 TMS320C54x的指令系統(tǒng)標號值等于它所指向的語句所在的單元地址START:.word 0AH,3,7;把0AH、3、7三個數(shù)存放到當前段的 連續(xù) 的單元中在這條指令中,START的值就等于存放0AH的單元地址值MVPD START, * AR2;將程序存儲器STAR
23、T地址單元中的內(nèi)容復(fù)制到AR2 寄存器所指向的數(shù)據(jù)存儲單元中。第3章 TMS320C54x的指令系統(tǒng)3.2.1 混編程序語句格式2.指令域在標號域后面是指令域。如果沒有標號域,指令域只能從第一列以后開始書寫,如果從第一列開始書寫指令,則匯編器會誤認為為標號。指令域可以包括下列指令碼之一:匯編語言指令、匯編偽指令、宏指令第3章 TMS320C54x的指令系統(tǒng)3.2.1 混編程序語句格式3.操作數(shù)域操作數(shù)域中包含的是源操作數(shù)和目的操作數(shù),操作數(shù)可以是常量、符號,或者是常量和符號的混合表達式。根據(jù)尋址方式的不同,操作數(shù)可以是立即數(shù)、地址或間接地址,可以在操作數(shù)前加上前綴符號來進行區(qū)分。#:表示其后的
24、操作數(shù)是立即數(shù)。*:表示其后的操作數(shù)是間接地址。:表示其后的操作數(shù)是采用直接尋址。注:助記符指令格式中,在使用直接尋址方式時可以省略。第3章 TMS320C54x的指令系統(tǒng)3.2.1 混編程序語句格式4.注釋域注釋域可以從任意列開始書寫,但是必須以 ;開頭。如果注釋從第一列開始書寫也可以用 * 開頭。小結(jié):(1)語句的開頭只能是標號、空格、星號或分號。(2)標號域是可選的,如果使用只能從第一列開始。(3)每個域之間必須有空格分開。(4)注釋域是可選項,如果從第一列開始必須用 ;或 * 開頭, 從其他列開始只能用 ;開頭。(5)源語句的字符數(shù)每行不能超過200個。第3章 TMS320C54x的指
25、令系統(tǒng)3.2.2 匯編語言常量C54x匯編器支持7種類型的常量:二進制、八進制、十進制、十六進制、字符常量、匯編時間常量和浮點數(shù)常量。1.二進制整數(shù)常量可以由最多16個二進制數(shù)字組成,后綴為B或b。如果少于16位,匯編器會把數(shù)字右對齊并在左邊補0。2.八進制整數(shù)常量最多由6個八進制數(shù)字組成,后綴為Q或q。3.十進制整數(shù)常量由十進制數(shù)字串組成,范圍從32768 32767,或從0 65535。4.十六進制整數(shù)常量最多由4個十六進制數(shù)字組成,后綴為H或h,也可以用前綴0 x表示第3章 TMS320C54x的指令系統(tǒng)3.2.2 匯編語言常量5.字符常量字符常量是由單引號括住的一個或兩個字符組成,在匯
26、編器內(nèi)部會用字符對應(yīng)的ASC碼進行表示。如果單引號中間為空,則表示為0。6.匯編時間常量用.set偽指令給一個符號賦值,則這個符號等效一個常量。shift .set 3LD # shift,A;偽指令給一個符號賦值,則這個符號等效一個常 量。7.浮點數(shù)常量浮點數(shù)常量可用來表示小數(shù),通常由一串十進制數(shù)字、小數(shù)點、小數(shù)部分、指數(shù)部分組成。第3章 TMS320C54x的指令系統(tǒng)3.2.3 字符串字符串是由雙引號括起來的一串字符,主要為偽指令所用。3.2.4 符號符號可用于標號、常量和替代其他字符,一個符號名最多可以有32位字符組成( AZ、az、09、_和$ ),第一位不能是數(shù)字,并且字符之間不能有
27、空格。符號對大小寫敏感。用作標號的符號在使用前必須被定義,該標號代表程序中對應(yīng)位值的地址。3.3 TMS320C54x的指令系統(tǒng) C54x的指令系統(tǒng)共有129條基本指令,由于操作數(shù)的尋址方式不同,由它們可以派生多至205條指令。 按指令的功能可分成五大類: 數(shù)據(jù)傳送指令 算術(shù)運算指令 邏輯運算指令 程序控制指令 重復(fù)操作指令第3章 TMS320C54x的指令系統(tǒng)練習(xí):閱讀下列程序段,添加注釋,了解程序功能 第3章 TMS320C54x的指令系統(tǒng) .bss x,5 .bss y,1 .def start table: .word 10,20,3,4,5start: STM #x,AR1 RPT
28、#4 MVPD table,*AR1+ LD #0,A CALL SUMend: B endSUM: STM #x,AR3 STM #4,AR2 loop: ADD *AR3+,A BANZ loop,*AR2- STL A, *(y) RET .end 3.3.1 數(shù)據(jù)傳送指令 是從存儲器中將源操作數(shù)傳送到目的操作數(shù)所指定的存儲器中。 包括:裝載指令存儲指令條件存儲指令混合裝載和存儲指令第3章 TMS320C54x的指令系統(tǒng)1.裝載指令 即取數(shù)或賦值指令,用于將存儲器內(nèi)容或立即數(shù)賦給目的寄存器。格式: 操作碼 源操作數(shù) ,移位數(shù) ,目的操作數(shù) 功能: 源操作數(shù)按移位數(shù)進行移位,將移位結(jié)果送入
29、 目的操作數(shù)指定的寄存器。DLDLDLDMLDRLDULTDLmem SARAM中的32位數(shù)據(jù)Smem SARAM中的16位數(shù)據(jù)Xmem DARAM中的16位數(shù)據(jù)#K 小于9位的短立即數(shù)#lK 16位長立即數(shù)#k9 9位立即數(shù)#k5 5位立即數(shù)#k3 3位立即數(shù)src 源累加器A或BMMR 存儲器映像寄存器-16SHIFT31dst 累加器A或BT 暫存器DP RAM頁指針ARP 輔助寄存器 指針第3章 TMS320C54x的指令系統(tǒng)1.裝載指令 (1) DLD Lmem,dst 功能: dst = Lmem 將Lmem所指定的單數(shù)據(jù)存 儲器中的32位數(shù)據(jù)送入累加器A或B中。 (2) LD S
30、mem,dst dst = Smem 將Smem所指定的單數(shù)據(jù)存 儲器中的16位數(shù)據(jù)送入累加器A或B中。 功能:第3章 TMS320C54x的指令系統(tǒng)(3) LD Smem,16,dst 功能: dst=Smem16 將Smem所指定的單數(shù)據(jù)存 儲器的數(shù)據(jù)左移16位后送入A或B。 1.裝載指令第3章 TMS320C54x的指令系統(tǒng) (4) LD Smem,TS,dst dst = SmemTS 將Smem所指定的單數(shù)據(jù) 存儲器中的數(shù)據(jù),按T暫存器提供的數(shù) (-16TS31)移位,然后送入A或B。 功能:(5) LD src,ASM ,dst 功能: dst = src src(150),則Sm
31、em=src(3116); 若src(3116) src(150),則Smem=src(150)。 即比較累加器的高、低位,并存儲最大值。(2) SACCD src,Xmem,cond 若滿足cond條件,則累加器值按ASM-16的差值 移位,并存入Xmem中。 功能:第3章 TMS320C54x的指令系統(tǒng)3.條件存儲指令(3) SRCCD Xmem ,cond 功能: 若滿足cond條件,則將塊重復(fù)計數(shù)器BRC的內(nèi) 容存入Xmem中。(4) STRCD Xmem,cond 若滿足cond條件,則將T寄存器中的內(nèi)容存入 Xmem中。 功能:第3章 TMS320C54x的指令系統(tǒng)4.混合裝載和存
32、儲指令 用于完成數(shù)據(jù)存儲器、程序存儲器以及I/O口之間的數(shù)據(jù)傳輸,共計12條。(1) MVDD Xmem,Ymem 功能: Ymem = Xmem 將數(shù)據(jù)存儲器Xmem中的數(shù)據(jù)傳送 到數(shù)據(jù)存儲器Ymem中。 (2) MVDK Smem,dmad dmad = Smem 將數(shù)據(jù)存儲器Smem中的數(shù)據(jù)傳送 到以dmad為地址的數(shù)據(jù)存儲器中。 功能:第3章 TMS320C54x的指令系統(tǒng)(3) MVKD dmad,Smem 功能: Smem = dmad 將以dmad為地址的數(shù)據(jù)存儲器中 的數(shù)據(jù)傳送到數(shù)據(jù)存儲器Smem中。 4.混合裝載和存儲指令 (4) MVDP Smem,pmad 功能: pma
33、d = Smem 將數(shù)據(jù)存儲器Smem中的數(shù)據(jù)傳送 到以pmad為地址的程序存儲器中。 第3章 TMS320C54x的指令系統(tǒng)(5) MVPD pmad,Smem 功能: Smem = pmad 將以pmad為地址的程序存儲器中的數(shù)據(jù)傳送到數(shù)據(jù)存儲器Smem中。 (6) MVDM dmad,MMR 功能: MMR = dmad 將以dmad為地址的數(shù)據(jù)存儲器中的 數(shù)據(jù)傳送到MMR中。 4.混合裝載和存儲指令 (8) MVMM MMRx,MMRy 功能: MMRy = MMRx 將映像寄存器MMRx中的數(shù)據(jù)傳送到MMRy中。 (9) PORTR PA,Smem 功能: Smem = PA 將以P
34、A為地址的I/O口中的數(shù)據(jù)傳送到數(shù)據(jù)存儲器Smem中。 第3章 TMS320C54x的指令系統(tǒng)(7) MVMD MMR,dmad 功能: dmad = MMR 將MMR中的數(shù)據(jù)傳送到以dmad為地 址的數(shù)據(jù)存儲器中。 4.混合裝載和存儲指令 (10) PORTW Smem,PA 功能: PA = Smem 將數(shù)據(jù)存儲器Smem中的數(shù)據(jù)傳送到以PA為地址的I/O口中。 (11) READA Smem 功能: Smem = Pmem(A) 將以累加器A為地址的程序存儲器中的數(shù)據(jù)傳送到數(shù)據(jù)存儲器Smem中。 (12) WRITA Smem 功能: Pmem(A) = Smem 將數(shù)據(jù)存儲器Smem中
35、的數(shù)據(jù)傳送到以累加器A為地址的程序存儲器中。 第3章 TMS320C54x的指令系統(tǒng)3.3.2 算術(shù)運算指令 算術(shù)運算指令是實現(xiàn)數(shù)學(xué)計算的重要指令集合。C54x的算術(shù)指令具有運算功能強、指令豐富等特點。 包括:加法指令(ADD) 減法指令(SUB) 乘法指令(MPY) 乘法-累加/減指令(MAC/MAS)雙字運算指令特殊用途指令第3章 TMS320C54x的指令系統(tǒng)3.3.2 算術(shù)運算指令(1)加法指令 C54x的加法指令共有13條,可完成兩個操作數(shù)的加法運算、移位后的加法運算、帶進位的加法運算和不帶符號位擴展的加法運算。ADD、ADDC、ADDM、ADDS 指令格式:操作碼 源操作數(shù) ,移位
36、數(shù) ,目的操作數(shù) Smem、Xmem、Ymem、#lk、src T、16、ASM dst、Smem 第3章 TMS320C54x的指令系統(tǒng)3.3.2 算術(shù)運算指令(2)減法指令 C54x的減法指令共有13條,可完成兩個操作數(shù)的減法運算、移位后的減法運算、帶借位的減法運算、條件減法運算和不帶符號位擴展的減法運算。SUBSUBBSUBCSUBS 指令格式:操作碼 源操作數(shù) ,移位數(shù) ,目的操作數(shù) SmemXmemYmem#lksrc TS16ASM dst 第3章 TMS320C54x的指令系統(tǒng)(3)乘法指令 C54x的指令系統(tǒng)提供了10條乘法運算指令,其運算結(jié)果都是32位的,存放在累加器A和B中
37、。而參與運算的乘數(shù)可以是T寄存器、立即數(shù)、存儲單元和累加器A或B的高16位。格式:操作碼 源操作數(shù)1 ,源操作數(shù)2 ,目的操作數(shù) MPY、MPYR、MPYA、MPYU、SQUR Smem、Xmem、#lk Ymem、#lk dst 第3章 TMS320C54x的指令系統(tǒng)(3)乘法指令 MPY SmemXmem#lkMPY Smem,dstMPY Smem,#lk,dst 操作碼 源操作數(shù) 指令格式MPY Xmem,Ymem,dstMPY #lk,dst MPYA MPYA dstMPYA Smem第3章 TMS320C54x的指令系統(tǒng)(3)乘法指令 MPYR 操作碼 源操作數(shù) 目的操作數(shù) 指令
38、格式Smem MPYR Smem, dst MPYU Smem MPYU Smem,dst SQUR Smem SQUR Smem,dst dst dst dst A dst SQUR A, dst 第3章 TMS320C54x的指令系統(tǒng)(4)乘法-累加和乘法-減法指令 這類指令共計22條,除了完成乘法運算外,還具有加法或減法運算。因此,在一些復(fù)雜的算法中,可以大大提高運算速度。 參與運算的乘數(shù)可以是T寄存器、立即數(shù)、存儲單元和累加器A或B的高16位。 乘法運算結(jié)束后,再將乘積與目的操作數(shù)進行加法或減法運算。第3章 TMS320C54x的指令系統(tǒng)(4)乘法-累加和乘法-減法指令 格式:操作碼
39、源操作數(shù)1 ,源操作數(shù)2 ,目的操作數(shù) MAC、MACR、MACA、MACAR、MACP、MACSU、MAS、MASR、MASASmem、Xmem、#lk、T Ymem、#lk、pmad dst 第3章 TMS320C54x的指令系統(tǒng)(4)乘法-累加和乘法-減法指令 MAC SmemXmem#lkMAC Smem,srcMAC Smem,#lk,src,dst 操作碼 源操作數(shù) 指令格式MAC Xmem,Ymem,src,dstMAC #lk,src,dst MACR MACR Smem,srcMACR Xmem,Ymem,src,dstSmemXmem第3章 TMS320C54x的指令系統(tǒng)(
40、4)乘法-累加和乘法-減法指令 操作碼 源操作數(shù)1 源操作數(shù)2 指令格式 MACA MACA Smem,BMACA T,src,dstSmem T MACAR MACAR Smem,BMACAR T,src,dstSmem T MACD: MACD Smem,pmad,src MACSU: MACSU Xmem,Ymem,src第3章 TMS320C54x的指令系統(tǒng) MACP: MACP Smem,pmad,src(4)乘法-累加和乘法-減法指令 操作碼 源操作數(shù) 指令格式 MAS MAS Smem,srcMAS Xmem,Ymem,src,dstSmemXmem MASR MASR Smem
41、,srcMASR Xmem,Ymem,src,dstSmemXmem第3章 TMS320C54x的指令系統(tǒng) MASA MASA Smem,BMASA T,src,dstSmem T3.3.3 邏輯運算指令 C54x的指令系統(tǒng)具有豐富的邏輯運算指令。 包括:與運算指令(AND) 或運算指令(OR) 異或運算指令(XOR) 移位操作指令(SHIFT)測試操作指令(TEST)第3章 TMS320C54x的指令系統(tǒng)3.3.3 邏輯運算指令 (1)與運算指令 AND、ANDM 指令格式:操作碼 源操作數(shù) ,移位數(shù) ,目的操作數(shù) Smem、#lk、src dst、Smem 第3章 TMS320C54x的指
42、令系統(tǒng)(1)與運算指令 序號指 令功 能說 明1AND Smem , srcsrc = src & Smem源操作數(shù)與累加器與運算2AND #lk,SHFT,src,dstdst = src & #lkSHFT長立即數(shù)移位后與累加器與運算3AND src,SHIFT,dstdst=dst & srcSHIFT源累加器移位后與目標累加器與運算4ANDM #lk, SmemSmem = Smem & #lk目標操作數(shù)與長立即數(shù)與運算第3章 TMS320C54x的指令系統(tǒng)3.3.3 邏輯運算指令 (2)或運算指令 指令格式:操作碼 源操作數(shù) ,移位數(shù) ,目的操作數(shù) Smem,SHFT,srcOR #
43、lk,src,dstOR,SHIFT src ,dstOR #lk ,SmemORM第3章 TMS320C54x的指令系統(tǒng)3.3.3 邏輯運算指令 (3)異或運算指令 指令格式:操作碼 源操作數(shù) ,移位數(shù) ,目的操作數(shù) Smem,SHFT,srcXOR #lk,src,dstXOR,SHIFT src ,dstXOR #lk ,SmemXORM第3章 TMS320C54x的指令系統(tǒng)3.3.3 邏輯運算指令 (4)移位操作指令 指令格式:操作碼 源操作數(shù) ,移位數(shù) ,目的操作數(shù) C54x共有6條移位指令,可實現(xiàn)帶進位位循環(huán)移位、帶TC位循環(huán)左移、算術(shù)移位、條件移位和邏輯移位等操作。 ROL、RO
44、LTC、ROR、SFTA、SFTC、SFTL src SHIFT dst 第3章 TMS320C54x的指令系統(tǒng)(4)移位操作指令 帶進位位循環(huán)左移 操作數(shù)src:累加器A或B 指令功能: 累加器src與進位位C循環(huán)左移一位。 執(zhí)行過程: C src(0) src(300) src(311) src(31) C 0 src(3932) 指令格式: ROL src ;C的值移入src的最低位;src左移一位;src的最高位移入C;src的保護位清0第3章 TMS320C54x的指令系統(tǒng)(4)移位操作指令 帶測試位循環(huán)左移 操作數(shù)src:累加器A或B 指令功能: 累加器src與測試位TC循環(huán)左移一
45、位。 執(zhí)行過程: 指令格式: ROLTC src 39 3231 0累加器src保護位TC TC的值移入src的最低位 累加器src左移一位 src的最高位移入TC src的保護位清0 0 第3章 TMS320C54x的指令系統(tǒng)(4)移位操作指令 帶進位位循環(huán)右移 操作數(shù)src:累加器A或B 指令功能: 累加器src與進位位C循環(huán)右移一位。 執(zhí)行過程: 指令格式: ROR src C的值移入src的31位 累加器src右移一位 src的最低位移入C src的保護位清039 3231 0累加器src保護位C 0 第3章 TMS320C54x的指令系統(tǒng) 算術(shù)移位 操作數(shù)src:累加器A或B 指令功
46、能: 根據(jù)SHIFT,src的內(nèi)容算術(shù)移位。 指令格式: SFTA src, SHIFT , dst 第3章 TMS320C54x的指令系統(tǒng) 算術(shù)移位執(zhí)行過程:當SHIFT 0時,進行算術(shù)左移 1) src的第(39-SHIET)位復(fù)制到進位位C; 2) 40位src左移SHIFT位,結(jié)果存入src或dst; 3) 將0置入dst的低SHIFT的各位 0寫入dst(SHIFT-1)0)第3章 TMS320C54x的指令系統(tǒng)(4)移位操作指令 條件移位 操作數(shù)src:累加器A或B 指令功能: 指令格式: SFTC src If src=0 Then 1 TC Else If src(31)=sr
47、c(30) Then src1 src 0 TC Else 1 TC 第3章 TMS320C54x的指令系統(tǒng) 條件移位 執(zhí)行過程: 當src = 0時,將1寫入測試位TC; 當src0時,進行條件移位。 若src有兩個有效符號位,則移位。 32位src左移一位; 保護位src(3932)不變; 0寫入測試位TC。 若src只有一個符號位,則不移位。 1寫入測試位TC。第3章 TMS320C54x的指令系統(tǒng) 邏輯移位執(zhí)行過程: 若SHIFT 0,則進行邏輯左移。 src的第(31-(SHIFT-1)位復(fù)制到進位位C; src(31-SHIFT)0)左移SHIFT位存入dst; 0寫入dst的低S
48、HIFT位,即0dst(SHIFT-1)0); 0寫入dst的高8位,即0dst(3932)。第3章 TMS320C54x的指令系統(tǒng)SFTL src,SHIFT ,dst(4)移位操作指令 3.3.3 邏輯運算指令 (5)測試操作指令 C54x共有5條測試操作指令。 BIT 指令格式: BIT Xmem,BITC 指令功能: (Xmem(15-BITC)TC功能說明: 將Xmem的指定位復(fù)制到TC位。 操 作 數(shù): Xmem雙數(shù)據(jù)存儲操作數(shù) BITC測試位的位代碼, 取值:015 第3章 TMS320C54x的指令系統(tǒng)(5)測試操作指令 BITF 指令格式: BITF Smem,#lk 指令功
49、能: If(Smem)AND lk)= 0 Then 0 TC Else 1 TC功能說明: 測試Smem中由lk指定的某些位。 若指定的測試位為0,TC=0,否則,TC=1。操 作 數(shù): Smem單數(shù)據(jù)存儲操作數(shù) #lk16位長立即數(shù), 取值:0 65 535 第3章 TMS320C54x的指令系統(tǒng)(5)測試操作指令 BITT 指令格式: BITT Smem 指令功能: (Smem(15-T(30)TC功能說明: 將Smem的指定位復(fù)制到TC中。 T寄存器的低4位T(30)用于確定測試位 的位代碼。操 作 數(shù): Smem單數(shù)據(jù)存儲操作數(shù)第3章 TMS320C54x的指令系統(tǒng)(5)測試操作指令
50、 CMPM 指令格式: CMPM Smem,#lk 操 作 數(shù): Smem單數(shù)據(jù)存儲操作數(shù) #lk長立即數(shù), 取值:-32 768 32 768指令功能: If (Smem)= lk Then 1 TC Else 0 TC功能說明: 比較Smem中的操作數(shù)與常量lk是否相等。 若(Smem)= 1k,則TC = 1,否則,TC = 0。第3章 TMS320C54x的指令系統(tǒng)(5)測試操作指令 CMPR 指令格式: CMPR CC,ARx 操 作 數(shù): CC條件代碼,取值:00b11b ARx輔助寄存器AR0AR7 指令功能: If (cond) Then 1 TC Else 0 TC功能說明: 根據(jù)條件代碼CC,將指定的ARx與AR0比較。 若滿足條件,則TC = 1,否則,TC = 0。第3章 TMS320C54x的指令系統(tǒng)(5)測試操作指令 CMPR 測試條件與代碼條件條件代
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 質(zhì)量與安全自動灌裝機的雙重保障
- 跨境電商平臺在醫(yī)療領(lǐng)域的拓展策略
- 職能部門間的協(xié)同作用總結(jié)計劃
- 通過課外活動增強品德意識計劃
- 年度工作計劃中如何加強執(zhí)行力
- 提升學(xué)生思辨能力計劃
- 教學(xué)輔導(dǎo)與個別幫助方案計劃
- 跨區(qū)域醫(yī)療資源調(diào)配中PACS系統(tǒng)的應(yīng)用研究
- 名著閱讀 《昆蟲記》(導(dǎo)學(xué)案)(學(xué)生版)
- 注重實踐操作的生物學(xué)授課計劃
- 文獻檢索與論文寫作-文獻檢索與科技論文寫作138課件
- 10KV開關(guān)柜教學(xué)講解課件
- 河南省施工現(xiàn)場安全文明施工標準
- 廢橡膠處理協(xié)議書范本
- 增額終身壽險銷售邏輯
- GB/T 8813-2020硬質(zhì)泡沫塑料壓縮性能的測定
- GB/T 15057.2-1994化工用石灰石中氧化鈣和氧化鎂含量的測定
- 潔凈廠房監(jiān)理實施細則
- 哈工大研究生課程-高等結(jié)構(gòu)動力學(xué)-第四章課件
- 當代教育心理學(xué)(范圍)課件
- 2023年湖南工業(yè)職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試筆試題庫及答案解析
評論
0/150
提交評論