版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1DSPDSP技術技術及應用及應用igital ignal rocessor數字信號處理器數字信號處理器劉君劉君2第四節(jié)第四節(jié) 指令系統(tǒng)概述指令系統(tǒng)概述TMS320C54xTMS320C54x是是TMS320TMS320系列中的一種定點系列中的一種定點數字信號處理器,它的指令系統(tǒng)分助記符形數字信號處理器,它的指令系統(tǒng)分助記符形式和代數式形式兩種。式和代數式形式兩種。共有指令共有指令129129條,由于操作數的尋址方式條,由于操作數的尋址方式不同,派生至不同,派生至205205條。條。3可同時讀入可同時讀入2 2或或3 3個操作數;個操作數;支持雙精度運算的支持雙精度運算的3232位長操作數指令
2、;位長操作數指令;可進行單條指令重復和塊指令重復操作;可進行單條指令重復和塊指令重復操作;有塊存儲器傳送指令和并行操作(如并行存儲和加載有塊存儲器傳送指令和并行操作(如并行存儲和加載、并行存儲和加、并行存儲和加/ /減法、并行存儲和乘法、并行加載和減法、并行存儲和乘法、并行加載和乘法)指令;乘法)指令;設有條件存儲指令及延遲操作指令、有從中斷快速返設有條件存儲指令及延遲操作指令、有從中斷快速返回指令;回指令;有為特殊用途設計的指令(如支持有為特殊用途設計的指令(如支持FIRFIR濾波、最小均方濾波、最小均方算法算法LSMLSM、多項式計算以及浮點運算);、多項式計算以及浮點運算);有為省電安排
3、的空轉指令。有為省電安排的空轉指令。 TMS320C54xTMS320C54x指令系統(tǒng)的主要特點指令系統(tǒng)的主要特點4TMS320C54x指令系統(tǒng) 指令語句 每一條指令語句在源程序匯編時都要產生可供計算機執(zhí)行的指令代碼(即目標代碼),所以這種語句又叫可執(zhí)行語句。每一條指令語句表示計算機具有的一個基本能力,如數據傳送,兩數相加或相減,移位等,而這種能力是在目標程序(指令代碼的有序集合)運行時完成的,是依賴于汁算機內的中央處理器(CPU)、存儲器、IO接口等硬件設備來實現的。 5 偽指令語句 偽指令語句是用于指示匯編程序如何匯編源程序,所以這種語句又叫命令語句。例如源程序中的偽指令語句告訴匯編程序:
4、該源程序如何分段,有哪些邏輯段在程序段中哪些是當前段,它們分別由哪個段寄存器指向;定義了哪些數據,存儲單元是如何分配的等等。偽指令語句除定義的具體數據要生成目標代碼外,其他均沒有對應的目標代碼。偽指令語句的這些命令功能是由匯編程序在匯編源程序時,通過執(zhí)行一段程序來完成的,而不是在運行目標程序時實現的 6SmemSmem:1616位單尋址操作數。位單尋址操作數。XmemXmem:1616位雙尋址操作數,從位雙尋址操作數,從DBDB數據總線上讀出。數據總線上讀出。YmemYmem:1616位雙尋址操作數,從位雙尋址操作數,從CBCB數據總線上讀出。數據總線上讀出。dmaddmad:1616位立即數
5、,數據存儲器地址。位立即數,數據存儲器地址。pmadpmad:1616位立即數,程序存儲器地址。位立即數,程序存儲器地址。PAPA: 1616位立即數,位立即數,I/OI/O口地址。口地址。srcsrc: 源累加器(源累加器(A A或或B B)。)。dstdst: 目的累加器(目的累加器(A A或或B B)。)。lklk: 1616位長立即數。位長立即數。第一節(jié)第一節(jié) TMS320C54xTMS320C54x的尋址方式的尋址方式 71 1立即數尋址立即數尋址2絕對地址尋址絕對地址尋址3累加器尋址累加器尋址4直接尋址直接尋址5間接尋址間接尋址6存儲器映象寄存器尋址存儲器映象寄存器尋址7堆棧尋址堆
6、棧尋址尋址尋址分類分類8 1 1立即數尋址立即數尋址 在操作數前面需要加字號來說明該操作數在操作數前面需要加字號來說明該操作數為立即數。否則會把該操作數誤認為是一個地為立即數。否則會把該操作數誤認為是一個地址,從而把立即數尋址變成絕對地址尋址。址,從而把立即數尋址變成絕對地址尋址。 特特點點指令中包含有執(zhí)行指令所需要的操作數。指令中包含有執(zhí)行指令所需要的操作數。立即數分為立即數分為3 3、5 5、8 8或或9 9位的短立即數和位的短立即數和1616位位的長立即數兩種。的長立即數兩種。短立即數可包含在單字或雙字指令中,長立短立即數可包含在單字或雙字指令中,長立即數在雙字指令中。即數在雙字指令中。
7、 注注意意LD #93hLD #93h,A A LD 93hLD 93h,A A 舉例舉例9 2絕對地址尋址絕對地址尋址特特點點在指令中包含有所要尋址的存儲單元的在指令中包含有所要尋址的存儲單元的1616位位地址。這個地址。這個1616位的地址可以用其所在單元的地位的地址可以用其所在單元的地址標號或者址標號或者1616位符號常數來表示。位符號常數來表示。 (1 1)數據存儲器地址()數據存儲器地址(damddamd)尋)尋址址 用一個符號或一用一個符號或一個數來確定數據個數來確定數據空間的一個地址??臻g的一個地址。 方法方法MVKD SAMPLEMVKD SAMPLE,* *AR3AR3 舉例
8、舉例10用一個符號或一用一個符號或一個具體的數來確個具體的數來確定程序存儲器中定程序存儲器中的一個地址的一個地址 2絕對地址尋址絕對地址尋址(2 2)程序存儲器地址()程序存儲器地址(pmadpmad)尋)尋址址 方法方法MVPD TABLEMVPD TABLE,* *AR4AR4 舉例舉例11用一個符用一個符號或一個號或一個常數來確常數來確定外部定外部I/OI/O口地口地址址 2絕對地址尋址絕對地址尋址(3 3)PAPA尋址尋址 端口(端口(PAPA) 方法方法PORTR FIFOPORTR FIFO,* *AR5 AR5 舉例舉例12用一個符號用一個符號或一個常數或一個常數來確定數據來確定
9、數據存儲器中的存儲器中的一個地址一個地址 2絕對地址尋址絕對地址尋址(4 4)* *(lklk)尋址)尋址 方法方法LD LD * *(BUFFERBUFFER),),A A 舉例舉例特點特點允許所有使允許所有使用用SmemSmem尋址尋址的指令去訪的指令去訪問數據空間問數據空間的任意單元的任意單元而不改變數而不改變數據頁指針據頁指針(DPDP)的值,)的值,也不用對也不用對ARxARx進行初始化進行初始化 13用累加用累加器中的器中的數值作數值作為地址為地址來讀寫來讀寫程序存程序存儲器。儲器。 方法方法READA SmemREADA Smem WRITA SmemWRITA Smem 舉例舉
10、例特點特點可用來可用來完成完成程序存儲器程序存儲器單元的數據單元的數據與與數據存儲數據存儲器單元的數器單元的數據據進行交換進行交換 3累加器尋址累加器尋址14可以在不改可以在不改變變DPDP或或SPSP的的情況下,隨情況下,隨機地尋址機地尋址128128個存儲單元個存儲單元中的任何一中的任何一個單元。個單元。 用一個符號或用一個符號或一個常數來確一個常數來確定定7 7位偏移值位偏移值,與與DPDP或或SPSP共同共同形成形成1616位的數位的數據存儲器實際據存儲器實際地址。地址。4直接尋址直接尋址 方法方法LD #xLD #x,DPDPLD uLD u,A A ADD vADD v,A A =
11、SSBX CPLSSBX CPL LD X1 LD X1,A A ADD Y2 ADD Y2,A A 舉例舉例特點特點15CPL=0 7CPL=0 7位位dmadma域與域與9bit9bit的的DPDP相結合相結合形成形成1616位的數據存儲器地址。位的數據存儲器地址。CPL=1 7CPL=1 7位位dmadma域加上(正偏移)域加上(正偏移)SPSP的值形成的值形成1616位的數據存儲器地址。位的數據存儲器地址。 DPDP值是從值是從0511(2 29 9-1-1),以),以DPDP為基準的直接尋址把存儲器分為基準的直接尋址把存儲器分成成512512頁,頁,7 7位的位的dmadma范圍從范
12、圍從0127,每頁有,每頁有128128個可訪問的單元。個可訪問的單元。 165間接尋址間接尋址 方法方法特點特點(AR0AR0AR7AR7)ARAU0/ARAU1 ARAU0/ARAU1 1616位無符號算術運位無符號算術運算算尋址范圍為尋址范圍為64K 64K 能在一個指令中訪問能在一個指令中訪問兩個數據存儲器單元兩個數據存儲器單元兩個獨立的存儲器單元讀數據兩個獨立的存儲器單元讀數據讀一個讀一個、寫另一個存儲器單元寫另一個存儲器單元讀寫兩個連續(xù)的存儲器單元讀寫兩個連續(xù)的存儲器單元 175間接尋址間接尋址 (1 1)單操作數尋址)單操作數尋址 定義間接尋定義間接尋址的類型址的類型定義尋址所使
13、用定義尋址所使用的輔助寄存器的輔助寄存器 ST1ST1CMPT=0 CMPT=0 標準方式標準方式ARFARF確定輔助寄存器確定輔助寄存器,ST0ST0中中ARPARP0 0 CMPT=1 CMPT=1 兼容方式兼容方式如如ARF=0ARF=0,用,用ARPARP選擇輔助寄存器,選擇輔助寄存器,否則,用否則,用ARFARF來確定輔助寄存器。來確定輔助寄存器。ARFARF的值裝入的值裝入ARPARP。LD LD * *AR1,BAR1,B18單操作數間接尋址的硬件框圖19MOD域域操作碼語法操作碼語法功功 能能說說 明明0000*ARxaddr=ARxARx包含了數據存儲器地址包含了數據存儲器地
14、址0001*ARx-addr=ARxARx=ARx-1訪問后,訪問后,ARx中的地址減中的地址減10010*ARx+addr=ARxARx=ARx+1訪問后,訪問后,ARx中的地址加中的地址加10011*+ARxaddr=ARx+1ARx=ARx+1在尋址前,在尋址前,ARx中的地址加中的地址加1,然后再尋址,然后再尋址0100*ARx-0Baddr=ARxARx=B(ARx-AR0)訪問后,從訪問后,從ARx中以位倒序進位的方式減去中以位倒序進位的方式減去AR00101*ARx-0addr=ARxARx=ARx-AR0訪問后,從訪問后,從ARx中減去中減去AR00110*ARx+0addr=
15、ARxARx=ARx+AR0訪問后,把訪問后,把AR0加到加到ARx中去中去0111*ARx+0Baddr=ARxARx=B(ARx+AR0)訪問后,把訪問后,把AR0以位倒序進位的方式加到以位倒序進位的方式加到ARx中中1000*ARx-%addr=ARxARx=circ(ARx-1)訪問后,訪問后,ARx中的地址以循環(huán)尋址的方式減中的地址以循環(huán)尋址的方式減11001*ARx-0%addr=ARxARx=circ(ARx-AR0)訪問后,從訪問后,從ARx中以循環(huán)尋址的方式減去中以循環(huán)尋址的方式減去AR01010*ARx+%addr=ARxARx=circ(ARx+1)訪問后,訪問后,ARx
16、中的地址以循環(huán)尋址的方式加中的地址以循環(huán)尋址的方式加11011*ARx+0%addr=ARxARx=circ(ARx+AR0)訪問后,把訪問后,把AR0以循環(huán)尋址的方式加到以循環(huán)尋址的方式加到ARx中中1100*ARx(lk)addr=ARx+lkARx=ARxARx和和16位的長偏移(位的長偏移(lk)的和用來作為數據存儲器地)的和用來作為數據存儲器地址。址。ARx本身不被修改本身不被修改1101*+ARx(lk)addr=ARx+lkARx=ARx+lk在尋址前,把一個帶符號的在尋址前,把一個帶符號的16位的長偏移(位的長偏移(lk)加到)加到ARx中,然后用新的中,然后用新的ARx的值作
17、為數據存儲器的地址的值作為數據存儲器的地址1110*+ARx(lk)%addr=circ(ARx+lk)ARx=circ(ARx+lk)在尋址前,把一個帶符號的在尋址前,把一個帶符號的16位的長偏移以循環(huán)尋址位的長偏移以循環(huán)尋址的方式加到的方式加到ARx中,然后再用新的中,然后再用新的ARx的值作為數據的值作為數據存儲器的地址存儲器的地址1111*(lk)addr=lk一個無符號的一個無符號的16位的長偏移(位的長偏移(lk)用來作為數據存儲)用來作為數據存儲器的絕對地址。(也屬絕對尋址)器的絕對地址。(也屬絕對尋址)單數據存儲器操作數間接尋址類型單數據存儲器操作數間接尋址類型 201) 1)
18、 循環(huán)尋址循環(huán)尋址 循環(huán)緩沖區(qū)的長度值存放在循環(huán)緩沖循環(huán)緩沖區(qū)的長度值存放在循環(huán)緩沖區(qū)長度寄存器區(qū)長度寄存器BKBK中,中,BKBK中的數值由指令設定。長度為中的數值由指令設定。長度為R R的循環(huán)緩沖器必須從一個的循環(huán)緩沖器必須從一個N N位地址的邊界開始,即循環(huán)位地址的邊界開始,即循環(huán)緩沖器基地址的最低緩沖器基地址的最低N N位必須為位必須為0 0。N N是滿足是滿足2 2N NR R的最的最小整數。小整數。R R的值必須裝入的值必須裝入BKBK。例如,含有例如,含有3131個字的循環(huán)緩沖器必須從最低個字的循環(huán)緩沖器必須從最低5 5位為位為0 0的的地址開始,即地址開始,即xxxx xxxx
19、xxxx xxxx xxx0 0000 xxx0 00002 2,N=5N=5,2 2N N=2=25 5R=31R=31,且,且3131必須裝入必須裝入BKBK。如:。如:STM #1kSTM #1k,BKBK如果如果R=32R=32,則最小的,則最小的N N值為值為6 6,循環(huán)緩沖區(qū)的起始地址,循環(huán)緩沖區(qū)的起始地址必須有必須有6 6個最低有效位為個最低有效位為0 0,即,即 00 000000 00002 2。212) 2) 位倒序尋址位倒序尋址 在這種尋址方式中,用在這種尋址方式中,用AR0AR0存放存放FFTFFT點數的一半整數點數的一半整數N N,用另一輔助寄存器指向一數據,用另一輔
20、助寄存器指向一數據存放的物理單元。當使用位倒序尋址把存放的物理單元。當使用位倒序尋址把AR0AR0加到輔助寄加到輔助寄存器中時,地址以位倒序的方式產生,即進位是從左存器中時,地址以位倒序的方式產生,即進位是從左向右,而不是從右向左進位。向右,而不是從右向左進位。 例如:例如: 0110 10000110 1000 + 0000 1000 + 0000 1000 0110 01000110 0100以以8 8位輔助寄存器為例,位輔助寄存器為例,AR1AR1表示了在存儲器中數表示了在存儲器中數據的基地址(據的基地址(0110 00000110 0000)2 2,AR0AR0的值為(的值為(0000
21、 10000000 1000)2 2。利用以下兩條語句可以向外設口(口地址為。利用以下兩條語句可以向外設口(口地址為PAPA)輸出整序后的輸出整序后的FFTFFT變換結果:變換結果:RPT #15 RPT #15 重復執(zhí)行下條指令重復執(zhí)行下條指令15+115+1次次PORTW PORTW * *AR1+0BAR1+0B,PA PA 向外設口向外設口PAPA輸出整結果輸出整結果22AR1修改修改循環(huán)值循環(huán)值存儲單存儲單元地址元地址整序前整序前FFT 變換結果變換結果位倒序位倒序AR1更新的地址值更新的地址值AR0=0000 10002整序后整序后PA輸出的輸出的FFT變換結果變換結果00000X
22、(0)00000110 0000X(0)10001X(8)10000110 1000X(1)20010X(4)01000110 0100X(2)30011X(12)11000110 1100X(3)40100X(2)00100110 0010X(4)50101X(10)10100110 1010X(5)60110X(6)01100110 0110X(6)70111X(14)11100110 1110X(7)81000X(1)00010110 0001X(8)91001X(9)10010110 1001X(9)101010X(5)01010110 0101X(10)111011X(13)1101
23、0110 1101X(11)121100X(3)00110110 0011X(12)131101X(11)10110110 1011X(13)141110X(7)01110110 0111X(14)151111X(15)11110110 1111X(15)位倒序對位倒序對FFTFFT變換結果的序號調整變換結果的序號調整 235間接尋址間接尋址 (2 2)雙操作數尋址方式)雙操作數尋址方式 確定確定包含包含XmemXmem地址地址的輔的輔助寄助寄存器存器 確定確定包含包含YmemYmem地址地址的輔的輔助寄助寄存存器器定義用于定義用于訪問訪問YmemYmem操作數的操作數的間接尋址間接尋址方式的
24、類方式的類型型 定義用于定義用于訪問訪問XmemXmem操操作數的間作數的間接尋址方接尋址方式的類型式的類型 MPY MPY * *AR2,AR2,* *AR3,AAR3,A24Xar或或Yar 輔助寄存器輔助寄存器00 AR201 AR310 AR411 AR5輔助輔助寄存器寄存器選擇選擇Xmod或或Ymod操作碼語操作碼語法法功功 能能說說 明明00*ARxaddr=ARxARx是數據存儲器地址是數據存儲器地址01*ARx-addr=ARxARx=ARx-1訪問后,訪問后,ARx中的地址減中的地址減110*ARx+addr=ARxARx=ARx+1訪問后,訪問后,ARx中的地址加中的地址加
25、111*ARx+0%addr=ARxARx=circ(ARx+AR0)訪問后,訪問后,AR0以循環(huán)尋址的以循環(huán)尋址的方式加到方式加到ARx中中250 0頁尋址。頁尋址。不影響不影響當前當前DPDP或或SPSP值值 。用于直用于直接尋址接尋址和間接和間接尋址尋址用來修用來修改存儲改存儲器映象器映象寄存器寄存器 6存儲器映象寄存器尋址存儲器映象寄存器尋址功能功能LDM PRD,ALDM PRD,A舉例舉例特點特點方法方法高高9 9位數據位數據存儲器地址存儲器地址被置被置0 0,利,利用指令中的用指令中的低位地址低位地址訪問訪問MMRMMR。267堆棧尋址堆棧尋址 從高地址向低地址方向生長,從高地址
26、向低地址方向生長,SPSP)來管理堆棧,)來管理堆棧,SPSP始終指始終指向堆棧中所存放的最后一個向堆棧中所存放的最后一個數據,即數據,即SPSP指針始終指向棧指針始終指向棧頂。在壓入操作時,先減小頂。在壓入操作時,先減小SPSP的值,再將數據壓入堆棧;的值,再將數據壓入堆棧;在彈出操作時,先從堆棧彈在彈出操作時,先從堆棧彈出數據,再增加出數據,再增加SPSP的值。的值。用來在中斷用來在中斷和子程序調和子程序調用時自動保用時自動保存程序計數存程序計數器(器(PCPC)中)中的數值的數值,也也能用來保護能用來保護現場或傳送現場或傳送參數參數 功能功能特點特點PSHD PSHD * *AR2AR2
27、 POPD POPD * *AR3AR327第二節(jié)第二節(jié) 程序地址的生成程序地址的生成程序地址程序地址生成器生成器(PAGENPAGEN)構成構成程序計數器(程序計數器(PCPC)重復計數器(重復計數器(RCRC)塊重復計數器(塊重復計數器(BRCBRC)塊重復起始地址寄存器(塊重復起始地址寄存器(RSARSA)塊重復結束地址寄存器(塊重復結束地址寄存器(REAREA)核心核心1616位程序計數器(位程序計數器(PCPC)內中保存某個內部或外內中保存某個內部或外部程序存儲器的地址部程序存儲器的地址。地址地址內容為:內容為:即將取指的某條指令即將取指的某條指令;某個某個1616位立即操作數位立即
28、操作數;系數表系數表。在程序存儲器中的地址在程序存儲器中的地址28操作操作加載到加載到PC的地址的地址復位復位PC=FF80h。順序執(zhí)行指令順序執(zhí)行指令PC=PC+1。分支轉移分支轉移用緊跟在分支轉移指令后面的用緊跟在分支轉移指令后面的16位立即數加載位立即數加載PC。由累加器分支轉移由累加器分支轉移用累加器用累加器A或或B的低的低16位立即數加載位立即數加載PC。塊重復循環(huán)塊重復循環(huán)假如假如ST1中的塊重復有效位中的塊重復有效位BRAF=1,當,當PC+1等于塊重復等于塊重復結束地址(結束地址(REA)+1,將塊重復起始地址(,將塊重復起始地址(RSA)加載)加載PC。子程序調用子程序調用將
29、將PC+2壓入堆棧,并用緊跟在調用指令后面的壓入堆棧,并用緊跟在調用指令后面的16位立即數位立即數加載加載PC。返回指令將棧頂彈出至。返回指令將棧頂彈出至PC,回到原先的程序處,回到原先的程序處繼續(xù)執(zhí)行。繼續(xù)執(zhí)行。從累加器調用子程從累加器調用子程序序將將PC+1壓入椎棧,用累加器壓入椎棧,用累加器A或或B的低的低16位加載位加載PC。返回。返回指令將棧頂彈出至指令將棧頂彈出至PC,回到原先的程序處繼續(xù)執(zhí)行。,回到原先的程序處繼續(xù)執(zhí)行。硬件中斷或軟件中硬件中斷或軟件中斷斷將將PC壓入堆棧,用適當的中斷向量地址加載壓入堆棧,用適當的中斷向量地址加載PC。中斷返。中斷返回時,將棧頂彈出至回時,將棧頂
30、彈出至PC,繼續(xù)執(zhí)行被中斷了的子程序。,繼續(xù)執(zhí)行被中斷了的子程序。將程序存儲器地址加載到程序計數器的途徑將程序存儲器地址加載到程序計數器的途徑291分支轉移操作分支轉移操作 通過分支轉移指令改寫通過分支轉移指令改寫PCPC,可,可以改變程序的流向。而子程序以改變程序的流向。而子程序調用指令則通過將一個返回地調用指令則通過將一個返回地址壓入堆棧,執(zhí)行返回時恢復址壓入堆棧,執(zhí)行返回時恢復原地址。原地址??蓤?zhí)行可執(zhí)行: :分支轉移分支轉移循環(huán)控制循環(huán)控制子程序操子程序操作作 功能功能方法方法30條件條件分支轉移分支轉移無條件分支轉移無條件分支轉移 BDBD用指令用指令中所給出的中所給出的地址加載地址
31、加載PCPCBACCDBACCD用用所指定的累所指定的累加器的低加器的低1616位作為地址位作為地址加載加載PCPC。 帶延遲帶延遲不帶延遲不帶延遲操作操作轉移種類轉移種類BCDBCD如果指令如果指令中所規(guī)定的條中所規(guī)定的條件得到滿足,件得到滿足,就用指令中所就用指令中所給出的地址加給出的地址加載載PCPC;BANZDBANZD如果當如果當前輔助寄存器前輔助寄存器不等于不等于0 0,就用,就用指令中所規(guī)定指令中所規(guī)定的地址加載的地址加載PCPC。 BC newBC new,AOVAOV BANZ loop,BANZ loop,* *AR2-AR2-B nextB nextBACC ABACC
32、A312調用和返回調用和返回 轉移前,原程序的轉移前,原程序的下條指令的地址被下條指令的地址被壓入堆棧,而在返壓入堆棧,而在返回時則將這個地址回時則將這個地址彈出至彈出至PCPC,使被中,使被中斷了的原程序能繼斷了的原程序能繼續(xù)執(zhí)行。續(xù)執(zhí)行。 當采用調用指令進當采用調用指令進行子程序或函數調行子程序或函數調用時,用時,DSPDSP中斷當前中斷當前運行的程序,轉移運行的程序,轉移到程序存儲器的其到程序存儲器的其它地它地址址繼續(xù)運行。繼續(xù)運行。功能功能方法方法無條件調用與返回無條件調用與返回有條件調用與返回有條件調用與返回帶延遲帶延遲不帶延遲不帶延遲CALLd lopCALLd lopRET ma
33、inRET main323條件指令中的條件判斷條件指令中的條件判斷33多重條件判斷多重條件判斷 BC pmadBC pmad,condcond,condcond,condcond相與關系相與關系相或關系相或關系BC pmadBC pmad,condcondBC pmadBC pmad,condcond第第1組組第第2組組A 類類B 類類A 類類B 類類C 類類EQOVTCCBIONEQNOVNTCNCNBIOLT LEQ GT GEQ 34第第1 1組組 例如例如 可以從可以從A A類中選一個條件,同類中選一個條件,同時可以從時可以從B B類中選擇一個條件。類中選擇一個條件。但是不能從同一類中
34、選擇兩但是不能從同一類中選擇兩個條件。個條件。另外,兩種條件測試的累加另外,兩種條件測試的累加器必須是同一個。器必須是同一個??梢酝瑫r測試可以同時測試AGTAGT和和AOVAOV,但,但不能同時測試不能同時測試AGTAGT和和BGTBGT。 35第第2 2組組 例如例如 可以在可以在A A、B B、C C三類中各三類中各選擇一個條件,但不能從選擇一個條件,但不能從同一類中選擇兩個條件同一類中選擇兩個條件 可以在可以在A A、B B、C C三類中各選三類中各選擇一個條件,但不能從同擇一個條件,但不能從同一類中選擇兩個條件一類中選擇兩個條件 36特特例例如果條件分支轉移出去的地方只有如果條件分支轉
35、移出去的地方只有1 12 2字的字的程序段,則可以用一條單周期條件執(zhí)行指令程序段,則可以用一條單周期條件執(zhí)行指令(XCXC)來代替分支轉移指令:)來代替分支轉移指令:XC nXC n,condcond,condcond,condcond當當n=1n=1,且條件得到滿足,就執(zhí)行緊隨此,且條件得到滿足,就執(zhí)行緊隨此條件指令后的個字指令。條件指令后的個字指令。當當n=2n=2,且條件得到滿足,就執(zhí)行緊隨此,且條件得到滿足,就執(zhí)行緊隨此指 令 后 的指 令 后 的 1 1 個 雙 字 指 令 或 者個 雙 字 指 令 或 者 2 2 條 單條 單字指令。字指令。當條件不滿足,就依當條件不滿足,就依n
36、n的值執(zhí)行的值執(zhí)行1 1條或條或2 2條條NOPNOP指令。指令。37例例3-3 編寫計算編寫計算 的主要程序部分。的主要程序部分。 .bss.bss x,4 x,4 ;為;為X X建立建立4 4個單元,個單元, ;放置;放置X1X1、X2X2、X3X3、X4X4 .bss.bss y,1 y,1 ;為;為Y Y建立建立1 1個單元,放置個單元,放置Y Y STM #xSTM #x,AR1 AR1 ;將;將X1X1的地址傳給的地址傳給AR1AR1 STM #3STM #3,AR2 AR2 ;將循環(huán)次數;將循環(huán)次數3 3傳給傳給AR2AR2 LD #0LD #0,A A ;對;對A A清零清零l
37、oop:ADD loop:ADD * *AR1+AR1+,A A ;對;對X1X1、X2X2、X3X3、X4X4循環(huán)循環(huán)累累 ;加,結果放;加,結果放A A中中 BANZ loop,BANZ loop,* *AR2- AR2- ;檢查循環(huán)是否應結束;檢查循環(huán)是否應結束 STL ASTL A,y y ;將累加結果存入;將累加結果存入Y Y中中41iixy38特點特點2 2特點特點1 14單條指令的重復操作單條指令的重復操作 重復執(zhí)行(重復執(zhí)行(RCRC)+1+1次。次。RCRC內容不能編程設置,內容不能編程設置,只能由重復指令(只能由重復指令(RPTRPT和和RPTZRPTZ)中的操作數加載。)
38、中的操作數加載。操作數操作數n n的最大值為的最大值為65 65 535535,最大重復執(zhí)行次數,最大重復執(zhí)行次數為為65 535+165 535+1。 一旦重復指令被取一旦重復指令被取指、譯碼,直到重指、譯碼,直到重復循環(huán)完成以前,復循環(huán)完成以前,對所有的中斷(包對所有的中斷(包括括 ,但不包,但不包括括 )均不響應。)均不響應。 功能功能重復執(zhí)行下一條指令重復執(zhí)行下一條指令 NMIRS39重復過程重復過程當當RPTRPT指令執(zhí)行時指令執(zhí)行時:首先把循環(huán)的次數裝入循環(huán)計數器(首先把循環(huán)的次數裝入循環(huán)計數器(RCRC),),其循環(huán)次數其循環(huán)次數n n由一個由一個1616位單數據存儲器操作數位單
39、數據存儲器操作數 SmemSmem或一個或一個8 8位或位或1616位常數位常數k k或或lklk給定。這樣,給定。這樣, 緊接著的下一條指令會循環(huán)執(zhí)行緊接著的下一條指令會循環(huán)執(zhí)行n+1n+1次。次。循環(huán),循環(huán),RCRC在執(zhí)行減在執(zhí)行減1 1操作時不能被訪問。操作時不能被訪問。注意:注意:該循環(huán)內不能套用循環(huán)。該循環(huán)內不能套用循環(huán)。 當當RPTZRPTZ指令執(zhí)行時指令執(zhí)行時:對目的累加器對目的累加器dstdst清清0 0, 循環(huán)執(zhí)行下一條指令循環(huán)執(zhí)行下一條指令n+1n+1次。次。 40例例3-5 利用單條指令的重復操作對數組利用單條指令的重復操作對數組x5=0 x5=0,0 0,0 0,0 0
40、,00進行初始化。進行初始化。.bss.bss x,5 x,5 ;為數組;為數組x x分配分配5 5個存儲單元個存儲單元STM #x,AR1 STM #x,AR1 ;將;將x x的首地址賦給的首地址賦給AR1AR1LD #0,A LD #0,A ;對;對A A清零清零RPT #4 RPT #4 ;設置重復執(zhí)行下條指令;設置重復執(zhí)行下條指令5 5次次STL A,STL A,* *AR1+AR1+;對;對x5x5各單元清零各單元清零或者或者.bss.bss x,5 x,5STM #x,AR1STM #x,AR1RPTZ A,#4RPTZ A,#4;對;對A A清零并設置重復執(zhí)行下條指令清零并設置重復執(zhí)行下條指令5
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園緊急保安招聘合同
- 貨車環(huán)境衛(wèi)生合同
- 飼料配送貨車司機聘用合同
- 綠色住宅地熱井施工合同
- 設備租賃協(xié)議書范本
- 耕地無償耕種協(xié)議書
- 瓦工勞務合同書樣本
- 公共建筑光伏 框架合作協(xié)議書
- 集體林權承包合同范本
- 黃河干流供水合同范例
- 期末試題-2024-2025學年人教PEP版英語六年級上冊 (含答案)
- 2025蛇年元旦蛇年新年晚會模板
- 幼兒園教育活動設計與指導學習通超星期末考試答案章節(jié)答案2024年
- 燃氣經營安全重大隱患判定標準課件
- 安全生產領域刑事犯罪-兩高司法解釋PPT課件
- 土地增值稅清算審核指南
- 死亡通知書模板
- 最新全球4G頻段精編版
- 真速通信密拍暗訪取證系統(tǒng)分冊
- 基于閱讀文本的寫作課堂觀察記錄表
- 2018年建設工程質量檢測企業(yè)組織架構、部門職能、商業(yè)模式、行業(yè)現狀研究
評論
0/150
提交評論