TMSCx的指令系統(tǒng)_第1頁
TMSCx的指令系統(tǒng)_第2頁
TMSCx的指令系統(tǒng)_第3頁
TMSCx的指令系統(tǒng)_第4頁
TMSCx的指令系統(tǒng)_第5頁
已閱讀5頁,還剩206頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第第3章章 TMS320C55x的指令系統(tǒng)的指令系統(tǒng)內(nèi)容提要:內(nèi)容提要: 本章介紹本章介紹TMS320C55x芯片的指令系統(tǒng)。芯片的指令系統(tǒng)。n尋址方式尋址方式 絕對尋址方式、直接尋址方式、間接尋址方式絕對尋址方式、直接尋址方式、間接尋址方式nTMS320C55x的指令系統(tǒng)的指令系統(tǒng)算術(shù)運(yùn)算指令、位操作指令、擴(kuò)展輔助寄存器操作指算術(shù)運(yùn)算指令、位操作指令、擴(kuò)展輔助寄存器操作指令、邏輯運(yùn)算指令、移動指令和程序控制指令令、邏輯運(yùn)算指令、移動指令和程序控制指令3.1 尋址方式尋址方式 C55x通過以下三種尋址方式訪問數(shù)據(jù)空間、存儲器映通過以下三種尋址方式訪問數(shù)據(jù)空間、存儲器映射寄存器、寄存器位和射寄存

2、器、寄存器位和I/O空間空間:l絕對尋址方式絕對尋址方式通過在指令中指定一個常數(shù)地址完成尋址通過在指令中指定一個常數(shù)地址完成尋址l直接尋址方式直接尋址方式使用地址偏移量尋址使用地址偏移量尋址l間接尋址方式間接尋址方式使用指針完成尋址使用指針完成尋址表表3-1 指令中用到的語法元素指令中用到的語法元素3.1.1 絕對尋址方式絕對尋址方式表表3-2 3-2 絕對尋址方式絕對尋址方式1. k16絕對尋址方式絕對尋址方式l格式格式u*abs16(#k16)其中:其中:k16是一個是一個16位無符號常數(shù)位無符號常數(shù)l要點(diǎn)要點(diǎn)u常數(shù)常數(shù)k16被固定譯碼為被固定譯碼為2個字節(jié)擴(kuò)充到指令中個字節(jié)擴(kuò)充到指令中u

3、采用這種尋址方式的指令采用這種尋址方式的指令不能與其它指令并行執(zhí)行不能與其它指令并行執(zhí)行圖圖3-1 k16絕對尋址方式絕對尋址方式 例例3-1,*abs16(#k16) 用于數(shù)據(jù)存儲器尋址。設(shè)用于數(shù)據(jù)存儲器尋址。設(shè)DPH=03h。lMOV *abs16(#2002h),T2 ;#k16=2002h,CPU從03 2002h處讀取數(shù)據(jù)裝入T2例例3-2,*abs16(#k16) 用于用于MMR尋址,尋址,DPH必須為必須為00h。MOV *abs16(#AR2), T2 ; AR2的地址為00 0012h;CPU從00 0012h處讀取數(shù)據(jù)裝入T22. k23絕對尋址方試絕對尋址方試l格式格式u

4、*(#k23) 其中:其中:k23是一個無符號的是一個無符號的23位常數(shù)位常數(shù)l要點(diǎn)要點(diǎn)u無符號常數(shù)無符號常數(shù)k23被固定譯碼為被固定譯碼為3個字節(jié),其中第三個字節(jié)個字節(jié),其中第三個字節(jié)的最高位被忽略的最高位被忽略u不能與其它指令并行執(zhí)行不能與其它指令并行執(zhí)行u不能用于重復(fù)指令中不能用于重復(fù)指令中圖圖3-2 k23絕對尋址方式絕對尋址方式例例3-3,*(#k23) 用于數(shù)據(jù)存儲器尋址。用于數(shù)據(jù)存儲器尋址。 MOV *(#032002h),T2 例例3-4,* (#k23) 用于用于MMR尋址。尋址。MOV * (#AR2), T2; AR2的地址為00 0012h;k23=03 2002h,C

5、PU從03 2002h處讀取數(shù)據(jù)裝入T2;CPU從00 0012h處讀取數(shù)據(jù)裝入T23. I/O絕對尋址方式絕對尋址方式l操作數(shù)格式操作數(shù)格式uport(#k16)其中,其中,k16是一個是一個16位無符號立即數(shù)位無符號立即數(shù)圖圖3-3 I/O3-3 I/O絕對尋址方式絕對尋址方式例例3-5,port(#k16) 用于對用于對I/O空間的尋址。空間的尋址。MOV port(#2),AR2 ;CPU從I/O 地址0002h讀取數(shù)據(jù)進(jìn)AR2MOV AR2,port(#0F000h) ;CPU把AR2的數(shù)據(jù)輸出到I/O 地址0F000h3. 2 直接尋址方式直接尋址方式表表3-2 3-2 直接尋址方

6、式直接尋址方式數(shù)據(jù)頁數(shù)據(jù)頁寄存器寄存器數(shù)據(jù)堆棧數(shù)據(jù)堆棧寄存器寄存器lDP直接尋址方式和直接尋址方式和SP直接尋址方式是直接尋址方式是相互排斥的相互排斥的,只能有一種方式存在。通過設(shè)置只能有一種方式存在。通過設(shè)置ST1_55的的CPL位選擇。位選擇。l寄存器位直接尋址方式和寄存器位直接尋址方式和PDP直接尋址方式不受直接尋址方式不受CPL位的影響位的影響CPL尋址模式的選擇0DP直接尋址模式1SP直接尋址模式1. DP直接尋址方式直接尋址方式l23位地址的形成:位地址的形成:u高高7位由位由DPH寄存器提供寄存器提供u低低16位由下面位由下面兩個值的和兩個值的和組成組成數(shù)據(jù)頁寄存器(數(shù)據(jù)頁寄存器

7、(DP):標(biāo)識一個主數(shù)據(jù)頁內(nèi)標(biāo)識一個主數(shù)據(jù)頁內(nèi)128個字個字的局部數(shù)據(jù)頁的首地址的局部數(shù)據(jù)頁的首地址7位的偏移地址(位的偏移地址(Doffset),計算方法因訪問數(shù)據(jù)),計算方法因訪問數(shù)據(jù)空間還是存儲器映射寄存器而有所不同空間還是存儲器映射寄存器而有所不同圖圖3-4 DP直接尋址方式直接尋址方式DPHDP+Doffset數(shù)據(jù)空間000 0000.000 00000000 0000 0000 0000.1111 1111 1111 1111主數(shù)據(jù)頁0: 00 0000h00 FFFFh000 0001.000 00010000 0000 0000 0000.1111 1111 1111 1111

8、主數(shù)據(jù)頁1: 01 0000h01 FFFFh000 0010.000 00100000 0000 0000 0000.1111 1111 1111 1111主數(shù)據(jù)頁2: 02 0000h02 FFFFh. . .111 1111.111 11110000 0000 0000 0000.1111 1111 1111 1111主數(shù)據(jù)頁127: 7F 0000h7F FFFFhlCPU連接連接DPH和和DP成為一個擴(kuò)展數(shù)據(jù)頁指針成為一個擴(kuò)展數(shù)據(jù)頁指針XDPu可以使用兩條指令獨(dú)立地裝入可以使用兩條指令獨(dú)立地裝入DPH和和DPu也可以使用一條指令裝入也可以使用一條指令裝入XDPl計算偏移地址的方法計算

9、偏移地址的方法:例例3-6,Daddr用于數(shù)據(jù)存儲器尋址。設(shè)用于數(shù)據(jù)存儲器尋址。設(shè)DPH=03h,DP=0000h。 MOV 0005h,T2 ;DPH:(DP+Doffset)=03:(0000h+0005h)=03 0005h;CPU從03 0005h處讀取數(shù)據(jù)裝入T2例例3-7,Daddr用于用于MMR尋址尋址.DPH=DP=00h。MOV mmap(AC0L), AR2 ;DPH:(DP+Doffset)= 00:(0000h+0008h)=00 0008h;CPU從00 0008h處讀取數(shù)據(jù)裝入AR22. SP直接尋址方式直接尋址方式l23位地址的形成位地址的形成u高高7位由位由SP

10、H提供提供u低低16位為位為SP和一個和一個7 位的偏移地址(位的偏移地址(offset)的和)的和lSPH和和SP合并后形成擴(kuò)展數(shù)據(jù)堆棧指針(合并后形成擴(kuò)展數(shù)據(jù)堆棧指針(XSP)u可以單獨(dú)向可以單獨(dú)向SPH和和SP賦值,也可以使用一條指令向賦值,也可以使用一條指令向XSP賦值。賦值。 主數(shù)據(jù)頁主數(shù)據(jù)頁0 0中的堆棧只能占用中的堆棧只能占用00 0060h00 0060h00 00 FFFFhFFFFh中的空間。因?yàn)橹械目臻g。因?yàn)?0 0000h00 0000h00 005Fh00 005Fh是保是保留給存儲映射寄存器用的。留給存儲映射寄存器用的。圖圖3-5 SP直接尋址方式直接尋址方式*SP

11、(offset)用于數(shù)據(jù)存儲器尋址,設(shè))用于數(shù)據(jù)存儲器尋址,設(shè) SPH=0,SP=FF00h。 MOV * SP(5),T2 SPH:(SP+offset)00:FF05h CPU從00 FF05h處讀取數(shù)據(jù)裝入T2SP直接尋址方式直接尋址方式3. 寄存器位直接尋址方式寄存器位直接尋址方式l操作數(shù)中的偏移bitoffset是相對于寄存器最低位來說的l僅有寄存器位測試/設(shè)置/清零/求補(bǔ)等指令支持這種尋址方式l僅能訪問下列寄存器的各位:AC0AC3,AR0AR7,T0T3如果如果bitoffsetbitoffset為為0 0,則訪問,則訪問寄存器的最低位;寄存器的最低位;如果如果bitoffset

12、bitoffset為為3 3,則訪問,則訪問寄存器的第寄存器的第3 3位。位。 bitoffset用于對寄存器位的尋址。BSET 0,AC3 ;CPU將AC3的位0置為1BCLR 3, AR2CPU將AC2的位3置為03. 寄存器位直接尋址方式寄存器位直接尋址方式4. PDP直接尋址方式直接尋址方式l9位的外設(shè)數(shù)據(jù)頁寄存器(位的外設(shè)數(shù)據(jù)頁寄存器(PDP)u選取選取512個外設(shè)數(shù)據(jù)頁(個外設(shè)數(shù)據(jù)頁(0511)中的一頁,每頁)中的一頁,每頁有有128個字(個字(0127),即指令中指定的一個),即指令中指定的一個7 位位的偏移(的偏移(Poffset)l使用時必須用使用時必須用port( )限定詞

13、限定詞u指定要訪問的是指定要訪問的是I/O空間,而不是數(shù)據(jù)存儲單元空間,而不是數(shù)據(jù)存儲單元uport()限定詞的括號內(nèi)是要讀或?qū)懙牟僮鲾?shù)限定詞的括號內(nèi)是要讀或?qū)懙牟僮鲾?shù)圖圖3-7 PDP直接尋址方式直接尋址方式例例3-15,Poffset用于對用于對I/O空間的尋址,空間的尋址,設(shè)設(shè)PDP=511。MOV port(0),T2 ;PDP:Poffset=FF80h,CPU從從FF80h讀取數(shù)據(jù)進(jìn)讀取數(shù)據(jù)進(jìn)T2MOV T2,port(127);PDP:Poffset=FFFFh,CPU把把T2的數(shù)據(jù)輸出到的數(shù)據(jù)輸出到I/O地址地址0FFFFh3. 3 間接尋址方式間接尋址方式表表3-3 間接尋址

14、方式間接尋址方式1. AR間接尋址方式間接尋址方式 l使用輔助寄存器使用輔助寄存器ARn(n=07)指向數(shù)據(jù)指向數(shù)據(jù)lCPU使用使用ARn產(chǎn)生地址的方式取決于訪問的數(shù)據(jù)類型產(chǎn)生地址的方式取決于訪問的數(shù)據(jù)類型表表3-7 AR間接尋址方式時間接尋址方式時AR的內(nèi)容的內(nèi)容尋址空間AR內(nèi)容數(shù)據(jù)空間(存儲空間或寄存器)23位地址的低16位,而高7位由ARnH提供寄存器位或雙位位的相對位置I/O空間一個16位的I/O地址(1)AR間接尋址數(shù)據(jù)空間間接尋址數(shù)據(jù)空間lARn提供一個提供一個16位位的低字地址,與其相關(guān)的的低字地址,與其相關(guān)的寄存器寄存器ARnH提供高提供高7位位的地址,它們合成為的地址,它們合

15、成為一個一個23位的擴(kuò)展輔助寄存器位的擴(kuò)展輔助寄存器XARnl對于訪問數(shù)據(jù)空間,需使用專用指令把地址裝入對于訪問數(shù)據(jù)空間,需使用專用指令把地址裝入XARnuARn可以單獨(dú)裝入可以單獨(dú)裝入uARnH不能單獨(dú)裝入不能單獨(dú)裝入圖圖3-8 AR間接尋址方式尋址數(shù)據(jù)空間間接尋址方式尋址數(shù)據(jù)空間ARnHARn數(shù)據(jù)空間數(shù)據(jù)空間000 0000.000 00000000 0000 0000 0000.1111 1111 1111 1111主數(shù)據(jù)頁0: 00 0000h00 FFFFh000 0001.000 00010000 0000 0000 0000.1111 1111 1111 1111主數(shù)據(jù)頁1: 0

16、1 0000h01 FFFFh000 0010.000 00100000 0000 0000 0000.1111 1111 1111 1111主數(shù)據(jù)頁2: 02 0000h02 FFFFh. . . .111 1111.111 11110000 0000 0000 0000.1111 1111 1111 1111主數(shù)據(jù)頁127: 7F 0000h7F FFFFh例例3-11,*ARn用于數(shù)據(jù)存儲器尋址,設(shè)用于數(shù)據(jù)存儲器尋址,設(shè)ARn工作在線性工作在線性尋址狀態(tài)。尋址狀態(tài)。lMOV *AR4, T2; AR4H:AR4 = XAR4, CPU從XAR4處讀取數(shù)據(jù)裝入T2lMOV *(AR4+T0

17、),T2;AR4H:AR4=XAR4,CPU從XAR4處讀取數(shù)據(jù)裝入T2,然后AR4=AR4+T0(2)AR間接尋址寄存器位間接尋址寄存器位l當(dāng)當(dāng)AR間接尋址方式用于訪問一個寄存器位時,間接尋址方式用于訪問一個寄存器位時,16位的位的寄存器寄存器ARn指定位的位置指定位的位置 例如,例如,ARn為為0,則訪問寄存器的最低位。,則訪問寄存器的最低位。例例3-12,*ARn用于對寄存器位的尋址,設(shè)用于對寄存器位的尋址,設(shè)AR0=0。BSET *AR0,AC3 ; CPU 將將AC3的位的位0置為置為1(3)AR間接尋址間接尋址I/O空間空間l訪問訪問I/O空間使用空間使用16位的地址位的地址l當(dāng)使

18、用當(dāng)使用AR間接尋址間接尋址I/O空間時,被使用的空間時,被使用的ARn包括完整包括完整的的I/O空間地址空間地址圖圖3-10 AR間接尋址間接尋址I/O空間空間ARnI/O 空間0000 0000 0000 0000.1111 1111 1111 11110000hFFFFh例例3-12,*ARn 用于對用于對I/O空間的尋址空間的尋址.設(shè)設(shè)AR4= FF80h, AR5= FFFFh。lMOV port(*AR4), T2 lMOV T2,port(*AR5);CPU從FF80h讀取數(shù)據(jù)進(jìn)T2;CPU把T2的數(shù)據(jù)輸出到I/O 地址0FFFFh(4) ARMS位對位對AR間接操作數(shù)的影響間接

19、操作數(shù)的影響lAR間接尋址方式的尋址操作數(shù)類型受ST2_55狀態(tài)寄存器中ARMS位的影響ARMSDSP模式和控制模式選擇0DSP模式。該模式用于高效的數(shù)字信號處理1控制模式。該模式優(yōu)化代碼長度,用于控制系統(tǒng) 注意:注意: 指針修改和地址產(chǎn)生可以是線性的或循環(huán)的,根據(jù)指針修改和地址產(chǎn)生可以是線性的或循環(huán)的,根據(jù)ST2_55ST2_55寄存器的指針配置而定。當(dāng)使用循環(huán)尋址時,寄存器的指針配置而定。當(dāng)使用循環(huán)尋址時,1616位位的緩沖區(qū)起始地址寄存器(的緩沖區(qū)起始地址寄存器(BSA01BSA01、BSA23BSA23、BSA45BSA45、BSA67BSA67)的內(nèi)容被加到相應(yīng)的指針上;)的內(nèi)容被加

20、到相應(yīng)的指針上; 指針間的加法和減法以指針間的加法和減法以64K64K為模,不改變?yōu)槟?,不改變XARnXARn,則不,則不能跨主數(shù)據(jù)頁尋址數(shù)據(jù)。能跨主數(shù)據(jù)頁尋址數(shù)據(jù)。表表3-9 DSP模式下的模式下的AR間接尋址模式(間接尋址模式(1)操作數(shù)指針修改方式訪問數(shù)據(jù)類型*ARnARn值不變Smem、Lmem、Baddr*ARn+地址產(chǎn)生后,指針的值自增:對于16位/1位操作數(shù),有ARn=ARn+1;對于32位/2位操作數(shù),有ARn=ARn+2Smem、Lmem、Baddr*ARn-地址產(chǎn)生后,指針的值自減:對于16位/1位操作數(shù),有ARn=ARn-1;對于32位/2位操作數(shù),有ARn=ARn-2S

21、mem、Lmem、Baddr*+ARn地址產(chǎn)生前,指針的值自增:對于16位/1位操作數(shù),有ARn=ARn+1;對于32位/2位操作數(shù),有ARn=ARn+2Smem、Lmem、Baddr*-ARn地址產(chǎn)生前,指針的值自減:對于16位/1位操作數(shù),有ARn=ARn-1;對于32位/2位操作數(shù),有ARn=ARn-2Smem、Lmem、Baddr*(ARn+T0/AR0)地址產(chǎn)生后,指針的值變化:如果C54CM=0,有ARn=ARn+T0;如果C54CM=1,有ARn=ARn+AR0;Smem、Lmem、Baddr*(ARn-T0/AR0)地址產(chǎn)生后,指針的值變化:如果C54CM=0,有ARn=ARn

22、-T0;如果C54CM=1,有ARn=ARn-AR0;Smem、Lmem、Baddr表表3-9 DSP模式下的模式下的AR間接尋址模式(間接尋址模式(2)操作數(shù)指針修改方式訪問數(shù)據(jù)類型*ARn(T0/AR0)ARn作為基地址不變,T0或AR0的值作為偏移地址Smem、Lmem、Baddr*(ARn+T0B/AR0B)地址產(chǎn)生后,指針的值變化:如果C54CM=0,有ARn=ARn+T0;如果C54CM=1,有ARn=ARn+AR0;上述加法按位倒序進(jìn)位規(guī)律進(jìn)行相加Smem、Lmem、Baddr*(ARn-T0B/AR0B)地址產(chǎn)生后,指針的值變化:如果C54CM=0,有ARn=ARn-T0;如果

23、C54CM=1,有ARn=ARn-AR0;上述加法按位倒序借位規(guī)律進(jìn)行相加Smem、Lmem、Baddr*(ARn+T1)地址產(chǎn)生后,指針的值為ARn= ARn+T1Smem、Lmem、Baddr*(ARn-T1)地址產(chǎn)生后,指針的值為ARn= ARn-T1Smem、Lmem、Baddr*ARn(T1)ARn作為基地址不變,T1值作為偏移地址Smem、Lmem、Baddr*ARn(#K16)ARn作為基地址不變,K16值作為偏移地址Smem、Lmem、Baddr*+ARn(#K16)地址產(chǎn)生前,指針的值變?yōu)锳Rn=ARn+K16Smem、Lmem、Baddr表表3-10 控制模式下的控制模式下

24、的AR間接尋址模式間接尋址模式操作數(shù)指針修改方式訪問數(shù)據(jù)類型*ARnARn值不變Smem、Lmem、Baddr*ARn+地址產(chǎn)生后,指針的值自增:對于16位/1位操作數(shù),有ARn=ARn+1;對于32位/2位操作數(shù),有ARn=ARn+2;Smem、Lmem、Baddr*ARn-地址產(chǎn)生后,指針的值自減:對于16位/1位操作數(shù),有ARn=ARn-1;對于32位/2位操作數(shù),有ARn=ARn-2Smem、Lmem、Baddr*(ARn+T0/AR0)地址產(chǎn)生后,指針的值變化:如果C54CM=0,有ARn=ARn+T0;如果C54CM=1,有ARn=ARn+AR0;Smem、Lmem、Baddr*(

25、ARn-T0/AR0)地址產(chǎn)生后,指針的值變化:如果C54CM=0,有ARn=ARn-T0;如果C54CM=1,有ARn=ARn-AR0;Smem、Lmem、Baddr*ARn(T0/AR0)ARn作為基地址不變,T0或AR0的值作為偏移地址Smem、Lmem、Baddr*ARn(#K16)ARn作為基地址不變,K16的值作為偏移地址Smem、Lmem、Baddr*+ARn(#K16)地址產(chǎn)生前,指針的值變?yōu)锳Rn=ARn+K16Smem、Lmem、Baddr*ARn(short(#k3)ARn作為基地址不變,3 位的無符號立即數(shù)作為偏移指針(k3的值為17)Smem、Lmem、Baddr2.

26、 雙雙AR間接尋址方式間接尋址方式l通過通過8個個ARn中的兩個寄存器訪問兩個數(shù)據(jù)存儲器地址中的兩個寄存器訪問兩個數(shù)據(jù)存儲器地址l使用雙使用雙ARAR間接尋址方式的情況:間接尋址方式的情況:u執(zhí)行一個指令,同時訪問兩個執(zhí)行一個指令,同時訪問兩個16位數(shù)據(jù)存儲器位數(shù)據(jù)存儲器 ADD Xmem,Ymem,ACxu并行執(zhí)行兩個指令,每個指令訪問一個數(shù)據(jù)存儲器并行執(zhí)行兩個指令,每個指令訪問一個數(shù)據(jù)存儲器 MOV Smem,dstAND Smem,src,dstlARMS位不影響雙位不影響雙AR間接尋址方式的操作數(shù)間接尋址方式的操作數(shù)u雙操作數(shù)可以使用同一個雙操作數(shù)可以使用同一個ARn,其中一個為,其中

27、一個為*ARn或或*ARn(T0),且,且ARn不改變不改變u如果如果ARn被不同的輔助寄存器修改,則不能用于一個被不同的輔助寄存器修改,則不能用于一個雙操作數(shù)指令中雙操作數(shù)指令中表表3-11雙雙AR間接尋址方式操作數(shù)間接尋址方式操作數(shù)操作數(shù)指針修改方式訪問數(shù)據(jù)類型*ARnARn值不變Smem,Lmem,Xmem,Ymem*ARn+地址產(chǎn)生后,ARn的值自增:對于16位操作數(shù),ARn=ARn+1;對于32位操作數(shù),ARn=ARn+2Smem,Lmem,Xmem,Ymem*ARn-地址產(chǎn)生后,ARn的值自減:對于16位操作數(shù),ARn=ARn-1;對于32位操作數(shù),ARn=ARn-2Smem,Lm

28、em,Xmem,Ymem*(ARn+T0/AR0)地址產(chǎn)生后,T0或AR0中16位的有符號數(shù)加到ARn上:如果C54CM=0,則ARn=ARn+T0;如果C54CM=1,則ARn=ARn+AR0Smem,Lmem,Xmem,Ymem*(ARn-T0/AR0)地址產(chǎn)生后,ARn減去T0或AR0中16位的有符號數(shù):如果C54CM=0,則ARn=ARn-T0;如果C54CM=1,則ARn=ARn-AR0Smem,Lmem,Xmem,Ymem*ARn(T0/AR0)ARn用作基地址則不變,T0或AR0中的16位有符號常數(shù)作為偏移地址如果C54CM=0,T0的值作為偏移地址;如果C54CM=1,AR0的

29、值作為偏移地址Smem,Lmem,Xmem,Ymem*(ARn+T1)地址產(chǎn)生后,AR1加上T1中的16位有符號常數(shù):ARn=ARn+T1Smem,Lmem,Xmem,Ymem*(ARn-T1)地址產(chǎn)生后,AR1減去T1中的16位有符號常數(shù):ARn=ARn-T1Smem,Lmem,Xmem,Ymem例例3-5,*ARn用于數(shù)據(jù)存儲器尋址,設(shè)用于數(shù)據(jù)存儲器尋址,設(shè)ARn工作工作在線性尋址狀態(tài)。在線性尋址狀態(tài)。lMOV *AR4, T2; AR4H:AR4 = XAR4, CPU從從XAR4處讀取數(shù)據(jù)裝入處讀取數(shù)據(jù)裝入T2lMOV dbl(*AR4), pair(T2) ;第一個地址為第一個地址為

30、XAR4. 如果如果XAR4為偶數(shù)為偶數(shù),則第二個地址則第二個地址XAR4+1,如果如果XAR4為奇數(shù)為奇數(shù),則第二個地址為則第二個地址為XAR4-1;CPU從從XAR4和和AR4+1(或(或AR4-1)處讀取數(shù)據(jù)裝入)處讀取數(shù)據(jù)裝入T2和和T3例例3-6,*(ARn+T0)用于數(shù)據(jù)存儲器尋址,設(shè)用于數(shù)據(jù)存儲器尋址,設(shè)ARn工作在線性尋址狀態(tài)。工作在線性尋址狀態(tài)。lMOV *(AR4+T0),T2;AR4H:AR4=XAR4,CPU從從XAR4處讀取數(shù)據(jù)裝入處讀取數(shù)據(jù)裝入T2,然后然后AR4=AR4+T0lMOV dbl(*(AR4+T0),pair(T2);第一個地址為第一個地址為XAR4;

31、如果如果XAR4為偶數(shù)為偶數(shù),則第二個地址則第二個地址XAR4+1;如果如果XAR4為奇數(shù),則第二個地址為為奇數(shù),則第二個地址為XAR4-1;CPU從從XAR4和和AR4+1(或(或AR4-1)處讀取數(shù)據(jù)裝入)處讀取數(shù)據(jù)裝入T2和和T3, 然后然后AR4=AR4+T0例例3-7,*(ARn+T0B)用于數(shù)據(jù)存儲器尋址,設(shè)用于數(shù)據(jù)存儲器尋址,設(shè)ARn工作在線性尋址狀態(tài)。工作在線性尋址狀態(tài)。lMOV *(AR4+T0B),T2;AR4H:AR4=XAR4,CPU從從XAR4處讀取數(shù)據(jù)裝入處讀取數(shù)據(jù)裝入T2,然然后后AR4=AR4+T0;在執(zhí)行加法時在執(zhí)行加法時,采用碼位倒置算法采用碼位倒置算法3.

32、 CDP間接尋址方式間接尋址方式lCPU使用使用CDP產(chǎn)生地址的方式依賴于訪問類型:產(chǎn)生地址的方式依賴于訪問類型:表表3-12 訪問空間與訪問空間與CDP的關(guān)系的關(guān)系(1)CDP間接尋址數(shù)據(jù)空間間接尋址數(shù)據(jù)空間lCDPH提供提供7位的高位域,位的高位域,CDP提供提供16位的低字,合位的低字,合并為并為23位的擴(kuò)展系數(shù)數(shù)據(jù)指針(位的擴(kuò)展系數(shù)數(shù)據(jù)指針(XCDP)CDPHCDP數(shù)據(jù)空間000 0000.000 00000000 0000 0000 0000.1111 1111 1111 1111主數(shù)據(jù)頁0: 00 0000h00 FFFFh000 0001.000 00010000 0000 00

33、00 0000.1111 1111 1111 1111主數(shù)據(jù)頁1: 01 0000h01 FFFFh000 0010.000 00100000 0000 0000 0000.1111 1111 1111 1111主數(shù)據(jù)頁2: 02 0000h02 FFFFh. . .111 1111.111 11110000 0000 0000 0000.1111 1111 1111 1111主數(shù)據(jù)頁127: 7F 0000h7F FFFFh(2)CDP間接尋址寄存器位間接尋址寄存器位lCDP包含位序號包含位序號 若若CDP為為0,則它指向寄存器的第,則它指向寄存器的第0位位l只有寄存器位測試、設(shè)置、清零、求

34、補(bǔ)指令支持只有寄存器位測試、設(shè)置、清零、求補(bǔ)指令支持CDP間接尋址寄存器位間接尋址寄存器位l這些寄存器僅限于:累加器(這些寄存器僅限于:累加器(AC0AC3)、輔助)、輔助寄存器(寄存器(AR0AR7)、暫存器()、暫存器(T0T3)(3)CDP間接尋址間接尋址I/O空間空間 當(dāng)當(dāng)CDP間接尋址方式用于訪問間接尋址方式用于訪問I/O空間時,空間時,16位位的的CDP包含了完整的包含了完整的I/O空間地址空間地址(4)CDP間接尋址操作數(shù)間接尋址操作數(shù) 注意:注意: 指針修改或地址產(chǎn)生可以是線性的,也可以是循環(huán)指針修改或地址產(chǎn)生可以是線性的,也可以是循環(huán)的,取決于的,取決于ST2_55ST2_5

35、5中的指針配置。使用循環(huán)尋址時,中的指針配置。使用循環(huán)尋址時,1616位緩沖區(qū)起始地址寄存器(位緩沖區(qū)起始地址寄存器(BSACBSAC)的內(nèi)容被加到相)的內(nèi)容被加到相應(yīng)指針上應(yīng)指針上; ; CDP CDP指針的修改以指針的修改以64K64K取模,只有修改取模,只有修改CDPHCDPH才能跨才能跨主數(shù)據(jù)頁尋址。主數(shù)據(jù)頁尋址。操作數(shù)指針修改方式訪問類型*CDPCDP值不改變Smem,Lmem,Xmem,Ymem*CDP+地址產(chǎn)生后,CDP自增:對于16位/1位操作數(shù),CDP=CDP+1;對于32位/2位操作數(shù),CDP=CDP+2Smem,Lmem,Xmem,Ymem*CDP-地址產(chǎn)生后,CDP自減

36、:對于16位/1位操作數(shù),CDP=CDP-1;對于32位/2位操作數(shù),CDP=CDP-2Smem,Lmem,Xmem,Ymem*CDP(#K16)CDP作為基地址不改變,16位的有符號常數(shù)K16作為偏移地址Smem,Lmem,Xmem,Ymem*+CDP(#K16)地址產(chǎn)生前,16位的有符號常數(shù)K16加到CDP上,即CDP=CDP+K16Smem,Lmem,Xmem,Ymem4. 系數(shù)間接尋址方式系數(shù)間接尋址方式l使用與使用與CDP間接尋址方式相同的地址產(chǎn)生方式間接尋址方式相同的地址產(chǎn)生方式l存儲空間數(shù)據(jù)移動存儲空間數(shù)據(jù)移動/初始化以及算術(shù)指令支持系數(shù)間接尋址初始化以及算術(shù)指令支持系數(shù)間接尋址

37、方式方式l系數(shù)間接尋址方式主要用于一個周期內(nèi)對三個存儲器操作系數(shù)間接尋址方式主要用于一個周期內(nèi)對三個存儲器操作數(shù)進(jìn)行操作的指令。其中,兩個操作數(shù)(數(shù)進(jìn)行操作的指令。其中,兩個操作數(shù)(Xmem和和Ymem)使用雙使用雙AR間接尋址,第三個操作數(shù)(間接尋址,第三個操作數(shù)(Cmem)使用系數(shù)間)使用系數(shù)間接尋址方式,接尋址方式,Cmem在在BB總線上傳送??偩€上傳送。如:如:有限沖擊響應(yīng)濾波器有限沖擊響應(yīng)濾波器乘法運(yùn)算乘法運(yùn)算乘加運(yùn)算乘加運(yùn)算乘減運(yùn)算乘減運(yùn)算雙乘加運(yùn)算和雙乘減運(yùn)雙乘加運(yùn)算和雙乘減運(yùn)算算例如:例如: MPY Xmem,Cmem,ACx :MPY Ymem,Cmem,ACy 其中,其中,

38、Cmem位于與位于與Xmem、Ymem不同的存儲器區(qū)塊上不同的存儲器區(qū)塊上l有些指令不使用有些指令不使用BB總線傳送總線傳送Cmem操作數(shù)。操作數(shù)。 由于由于BB總線與外部存儲器沒有接口,如果是總線與外部存儲器沒有接口,如果是BB總總線傳送數(shù)據(jù),則操作數(shù)必須是片內(nèi)存儲器的。線傳送數(shù)據(jù),則操作數(shù)必須是片內(nèi)存儲器的。表表3-14 不使用不使用BB總線傳送總線傳送Cmem的指令的指令 指令語法Cmem訪問數(shù)據(jù)類型Cmem訪問總線MOV Cmem,Smem從Cmem中讀16位DBMOV Smem,Cmem向Cmem中寫16位EBMOV Cmem,dbl(Lmem)從Cmem中讀32位CB讀高字,DB讀

39、低字MOV dbl(Lmem),Cmem向Cmem中寫32位FB讀高字,EB讀低字操作數(shù)指針變化訪問類型*CDPCDP不改變數(shù)據(jù)空間*CDP+地址產(chǎn)生后,CDP自增:對于16位操作數(shù),CDP=CDP+1;對于32位操作數(shù),CDP=CDP+2數(shù)據(jù)空間*CDP-地址產(chǎn)生后,CDP自減:對于16位操作數(shù),CDP=CDP-1;對于32位操作數(shù),CDP=CDP-2數(shù)據(jù)空間*(CDP+T0/AR0)地址產(chǎn)生后,16位的有符號數(shù)T0或AR0加到CDP上:如果C54CM=0,CDP=CDP+T0;如果C54CM=1,CDP=CDP+AR0數(shù)據(jù)空間表表3-15 系數(shù)間接尋址操作數(shù)系數(shù)間接尋址操作數(shù) 注意:注意:

40、 指針修改和地址產(chǎn)生可以是線性的或循環(huán)的,這取指針修改和地址產(chǎn)生可以是線性的或循環(huán)的,這取決于決于ST2_55ST2_55的指針配置。僅當(dāng)?shù)闹羔樑渲?。僅當(dāng)CDPCDP循環(huán)尋址時,循環(huán)尋址時,1616位位緩沖區(qū)起始地址寄存器緩沖區(qū)起始地址寄存器BSACBSAC將被加到指針上;將被加到指針上; CDPCDP的修改以的修改以64K64K取模,只能借助修改取模,只能借助修改CDPHCDPH才能跨才能跨越主數(shù)據(jù)頁尋址。越主數(shù)據(jù)頁尋址。3.1.4 數(shù)據(jù)存儲器的尋址數(shù)據(jù)存儲器的尋址 上述三種尋址方式(絕對、直接、間接)都可以用于對數(shù)上述三種尋址方式(絕對、直接、間接)都可以用于對數(shù)據(jù)存儲器的尋址。以下通過幾

41、個例題進(jìn)行說明。據(jù)存儲器的尋址。以下通過幾個例題進(jìn)行說明。例例3-1,*abs16(#k16) 用于數(shù)據(jù)存儲器尋址。設(shè)用于數(shù)據(jù)存儲器尋址。設(shè)DPH=03h。lMOV *abs16(#2002h),T2 ;#k16=2002h,CPU從從03 2002h處讀取數(shù)據(jù)裝入處讀取數(shù)據(jù)裝入T2lMOV dbl(*abs16(#2002h), pair(T2);#k16=2002h, #k16+1=2003h;CPU從從03 2002h和和03 2003h處讀取數(shù)據(jù)處讀取數(shù)據(jù),裝入裝入T2和和T3例例3-2,*(#k23) 用于數(shù)據(jù)存儲器尋址。用于數(shù)據(jù)存儲器尋址。lMOV *(#032002h),T2 ;

42、k23=03 2002h,CPU從從03 2002h處讀取數(shù)據(jù)裝入處讀取數(shù)據(jù)裝入T2lMOV dbl(*(#032002h),pair(T2);k23=03 2002h,k23+1=03 2003h;CPU從從03 2002h和和03 2003h處讀取數(shù)據(jù)處讀取數(shù)據(jù),裝入裝入T2和和T3例例3-3,Daddr用于數(shù)據(jù)存儲器尋址。設(shè)用于數(shù)據(jù)存儲器尋址。設(shè)DPH=03h,DP=0000h。lMOV 0005h,T2 ;DPH:(DP+Doffset)=03:(0000h+0005h)=03 0005h;CPU從從03 0005h處讀取數(shù)據(jù)裝入處讀取數(shù)據(jù)裝入T2lMOV dbl(0005h),pai

43、r(T2) ;DPH:(DP+Doffset)=03 0005h, DPH:(DP+Doffset1)=03 0004h;CPU從從03 0005h和和03 0004h處讀取數(shù)據(jù)裝入處讀取數(shù)據(jù)裝入T2和和T3例例3-4,*SP(offset)用于數(shù)據(jù)存儲器尋址。設(shè)用于數(shù)據(jù)存儲器尋址。設(shè)SPH=0,SP = FF00h。lMOV *SP(5),T2;SPH:(SP+offset)=00 FF05h,;CPU從從00 FF05h 處讀取數(shù)據(jù)裝入處讀取數(shù)據(jù)裝入T2lMOV dbl(*SP(5), pair(T2);SPH:(SP+offset)=00 FF05h,SPH:(SP+offset1)=0

44、0 FF04h;CPU從從00 FF05h和和00 FF04h處讀取數(shù)據(jù)裝入處讀取數(shù)據(jù)裝入T2和和T3例例3-5,*ARn用于數(shù)據(jù)存儲器尋址,設(shè)用于數(shù)據(jù)存儲器尋址,設(shè)ARn工作工作在線性尋址狀態(tài)。在線性尋址狀態(tài)。lMOV *AR4, T2; AR4H:AR4 = XAR4, CPU從從XAR4處讀取數(shù)據(jù)裝入處讀取數(shù)據(jù)裝入T2lMOV dbl(*AR4), pair(T2) ;第一個地址為第一個地址為XAR4. 如果如果XAR4為偶數(shù)為偶數(shù),則第二個地址則第二個地址XAR4+1,如果如果XAR4為奇數(shù)為奇數(shù),則第二個地址為則第二個地址為XAR4-1;CPU從從XAR4和和AR4+1(或(或AR4

45、-1)處讀取數(shù)據(jù)裝入)處讀取數(shù)據(jù)裝入T2和和T3例例3-6,*(ARn+T0)用于數(shù)據(jù)存儲器尋址,設(shè)用于數(shù)據(jù)存儲器尋址,設(shè)ARn工作在線性尋址狀態(tài)。工作在線性尋址狀態(tài)。lMOV *(AR4+T0),T2;AR4H:AR4=XAR4,CPU從從XAR4處讀取數(shù)據(jù)裝入處讀取數(shù)據(jù)裝入T2,然后然后AR4=AR4+T0lMOV dbl(*(AR4+T0),pair(T2);第一個地址為第一個地址為XAR4;如果如果XAR4為偶數(shù)為偶數(shù),則第二個地址則第二個地址XAR4+1;如果如果XAR4為奇數(shù),則第二個地址為為奇數(shù),則第二個地址為XAR4-1;CPU從從XAR4和和AR4+1(或(或AR4-1)處讀

46、取數(shù)據(jù)裝入)處讀取數(shù)據(jù)裝入T2和和T3, 然后然后AR4=AR4+T0例例3-7,*(ARn+T0B)用于數(shù)據(jù)存儲器尋址,設(shè)用于數(shù)據(jù)存儲器尋址,設(shè)ARn工作在線性尋址狀態(tài)。工作在線性尋址狀態(tài)。lMOV *(AR4+T0B),T2;AR4H:AR4=XAR4,CPU從從XAR4處讀取數(shù)據(jù)裝入處讀取數(shù)據(jù)裝入T2,然然后后AR4=AR4+T0;在執(zhí)行加法時在執(zhí)行加法時,采用碼位倒置算法采用碼位倒置算法3.1.5 存儲器映射寄存器的尋址存儲器映射寄存器的尋址 上述三種尋址方式(絕對、直接、間接)都上述三種尋址方式(絕對、直接、間接)都可以用于對可以用于對MMR尋址。尋址。 以下通過幾個例題進(jìn)行說明。以

47、下通過幾個例題進(jìn)行說明。例例3-9,* (#k23) 用于用于MMR尋址。尋址。MOV * (#AR2), T2;k23=00 0012h(AR2的地址為的地址為00 0012h);CPU從從00 0012h處讀取數(shù)據(jù)裝入處讀取數(shù)據(jù)裝入T2例例3-8,*abs16(#k16) 用于用于MMR尋址,尋址,DPH必須為必須為00h。MOV *abs16(#AR2), T2;DPH:k16=00 0012h(AR2的地址為的地址為00 0012h);CPU從從00 0012h處讀取數(shù)據(jù)裝入處讀取數(shù)據(jù)裝入T2例例3-10,Daddr用于用于MMR尋址尋址.DPH=DP=00h,CPL=0。MOV mm

48、ap(AC0L), AR2 ;DPH:(DP+Doffset)= 00:(0000h+0008h)=00 0008h;CPU從從00 0008h處讀取數(shù)據(jù)裝入處讀取數(shù)據(jù)裝入AR例例3-11,*ARn用于用于MMR尋址,尋址,ARn 指向某寄存器。指向某寄存器。MOV *AR6, T2 3.1.6寄存器位的尋址寄存器位的尋址 直接和間接尋址方式可以用于對寄存器位的尋址,直接和間接尋址方式可以用于對寄存器位的尋址,見下邊例題。見下邊例題。例例3-12,bitoffset用于對寄存器位的尋址。用于對寄存器位的尋址。BSET 0,AC3 ; 將將AC3的位的位0置為置為1BTSTP 30,AC3; 把

49、把AC3的位的位30和位和位31分別復(fù)制到分別復(fù)制到狀態(tài)寄存器狀態(tài)寄存器ST0_55的位的位TC1和和TC2例例3-13,*ARn用于對寄存器位的尋址,設(shè)用于對寄存器位的尋址,設(shè)AR0=0,AR5=30。BSET *AR0,AC3 ; CPU 將將AC3的位的位0置為置為1BTSTP *AR5,AC3;CPU把把AC3的位的位30和位和位31分別復(fù)制到狀態(tài)寄存器分別復(fù)制到狀態(tài)寄存器ST0_55的位的位TC1和和TC23.1.7 I/O空間的尋址空間的尋址 絕對、直接、間接等三種尋址方式都可以用于對絕對、直接、間接等三種尋址方式都可以用于對I/O空間的尋址,見以下例題??臻g的尋址,見以下例題。例

50、例3-14,port(#k16) 用于對用于對I/O空間的尋址??臻g的尋址。MOV port(#2),AR2 ;CPU從從I/O 地址地址0002h讀取數(shù)據(jù)進(jìn)讀取數(shù)據(jù)進(jìn)AR2MOV AR2,port(#0F000h) ;CPU把把AR2的數(shù)據(jù)輸出到的數(shù)據(jù)輸出到I/O 地址地址0F000h例例3-15,Poffset用于對用于對I/O空間的尋址,設(shè)空間的尋址,設(shè)PDP=511。MOV port(0),T2 ;PDP:Poffset=FF80h,CPU從從FF80h讀取數(shù)據(jù)進(jìn)讀取數(shù)據(jù)進(jìn)T2MOV T2,port(127);PDP:Poffset=FFFFh,CPU把把T2的數(shù)據(jù)輸出到的數(shù)據(jù)輸出到I

51、/O地址地址0FFFFh例例3-16,*ARn 用于對用于對I/O空間的尋址空間的尋址.設(shè)設(shè)AR4= FF80h, AR5= FFFFh。MOV port(*AR4), T2 ;CPU從從FF80h讀取數(shù)據(jù)進(jìn)讀取數(shù)據(jù)進(jìn)T2MOV T2,port(*AR5);CPU把把T2的數(shù)據(jù)輸出到的數(shù)據(jù)輸出到I/O 地址地址0FFFFh3.1.8 循環(huán)尋址循環(huán)尋址l任何一種間接尋址方式都可以使用循環(huán)尋址任何一種間接尋址方式都可以使用循環(huán)尋址l每個每個ARn(n = 07)和)和CDP都能獨(dú)立地配置為線性或循環(huán)都能獨(dú)立地配置為線性或循環(huán)尋址。該配置位位于尋址。該配置位位于ST2_55中,設(shè)置該位則實(shí)現(xiàn)循環(huán)尋址

52、中,設(shè)置該位則實(shí)現(xiàn)循環(huán)尋址l循環(huán)緩沖區(qū)的大小在循環(huán)緩沖區(qū)的大小在BK03、BK47或或BKC中定義。中定義。u對于字緩沖區(qū)則定義字的個數(shù)對于字緩沖區(qū)則定義字的個數(shù)u對于寄存器位緩沖區(qū)則定義位的個數(shù)對于寄存器位緩沖區(qū)則定義位的個數(shù)l對于數(shù)據(jù)空間的字緩沖區(qū),必須存放在一個主數(shù)據(jù)頁內(nèi)部,對于數(shù)據(jù)空間的字緩沖區(qū),必須存放在一個主數(shù)據(jù)頁內(nèi)部,不能跨主數(shù)據(jù)頁存放。不能跨主數(shù)據(jù)頁存放。l對于位緩沖區(qū),緩沖區(qū)起始地址寄存器定義參考位。對于位緩沖區(qū),緩沖區(qū)起始地址寄存器定義參考位。 每個地址具有每個地址具有2323位,高位,高7 7位代表主數(shù)據(jù)位代表主數(shù)據(jù)頁,由頁,由CDPHCDPH或或ARnHARnH決定;決

53、定; CDPHCDPH可以被獨(dú)立地裝入,可以被獨(dú)立地裝入,ARnHARnH則則不能。裝入不能。裝入ARnHARnH,必須先裝入,必須先裝入XARnXARn,即即ARnHARnH:ARnARn; 在主數(shù)據(jù)頁內(nèi)部,緩沖區(qū)的首地址在主數(shù)據(jù)頁內(nèi)部,緩沖區(qū)的首地址定義在定義在1616位的緩沖區(qū)首地址寄存器中,位的緩沖區(qū)首地址寄存器中,裝入在裝入在ARnARn或或CDPCDP中的值為地址索引,中的值為地址索引,選定相對于緩沖區(qū)首地址的地址。選定相對于緩沖區(qū)首地址的地址。指針選擇相對于參考位的位置位,僅需裝指針選擇相對于參考位的位置位,僅需裝入入ARnARn或或CDPCDP,不必裝入,不必裝入XARnXAR

54、n或或XCDPXCDP表表3-16 循環(huán)尋址循環(huán)尋址1. 配置配置AR0AR7和和CDP進(jìn)行循環(huán)尋址進(jìn)行循環(huán)尋址表表3-17 AR寄存器線性寄存器線性/循環(huán)尋址配置位循環(huán)尋址配置位 表表3-18 CDP寄存器線性寄存器線性/循環(huán)尋址配置位循環(huán)尋址配置位2. 循環(huán)緩沖區(qū)的實(shí)現(xiàn)循環(huán)緩沖區(qū)的實(shí)現(xiàn)l在數(shù)據(jù)空間建立一個字循環(huán)緩沖區(qū)的具體操作步驟:在數(shù)據(jù)空間建立一個字循環(huán)緩沖區(qū)的具體操作步驟:(1)初始化相應(yīng)的緩沖區(qū)大小寄存器()初始化相應(yīng)的緩沖區(qū)大小寄存器(BK03、BK47或或BKC)例如,對于例如,對于8個字大小的緩沖區(qū),裝入個字大小的緩沖區(qū),裝入BK寄存器為寄存器為8。(2)初始化)初始化ST2_

55、55中相應(yīng)的配置位,使能選定指針的循環(huán)中相應(yīng)的配置位,使能選定指針的循環(huán)尋址尋址(3)初始化相應(yīng)的擴(kuò)展寄存器()初始化相應(yīng)的擴(kuò)展寄存器(XARn或或XCDP),選擇),選擇一個主數(shù)據(jù)頁。一個主數(shù)據(jù)頁。例如:如果例如:如果AR3是一個循環(huán)指針,則裝入是一個循環(huán)指針,則裝入XAR3;如果;如果CDP是循環(huán)指針,則裝入是循環(huán)指針,則裝入XCDP。(4)初始化對應(yīng)的緩沖區(qū)首地址寄存器()初始化對應(yīng)的緩沖區(qū)首地址寄存器(BSA01,BSA23,BSA45, BSA67或或BSAC),主數(shù)據(jù)頁),主數(shù)據(jù)頁XAR(2216)或或XCDP(22-16)和)和BSA寄存器合并形成緩沖區(qū)的寄存器合并形成緩沖區(qū)的2

56、3位位首地址。首地址。(5)裝入選定的指針)裝入選定的指針ARn或或CDP,大小從,大小從0至緩沖區(qū)長度至緩沖區(qū)長度減減1。例如,如果使用例如,如果使用AR1,且緩沖區(qū)長度為,且緩沖區(qū)長度為8,則,則AR1裝入裝入的值小于或等于的值小于或等于7。例例3-17,初始化和尋址一個循環(huán)緩沖區(qū)。,初始化和尋址一個循環(huán)緩沖區(qū)。MOV #3,BK03 ;循環(huán)緩沖區(qū)大小為循環(huán)緩沖區(qū)大小為3個字個字BSET AR1LC ;使用使用AR1循環(huán)尋址循環(huán)尋址AMOV #010000h,XAR1 ;循環(huán)緩沖區(qū)位于主數(shù)據(jù)頁循環(huán)緩沖區(qū)位于主數(shù)據(jù)頁01MOV #0A20h, BSA01 ;緩沖區(qū)首地址緩沖區(qū)首地址MOV #

57、0000h,AR1 ;初始化初始化AR1MOV *AR1+,AC0 ;AC0=(0100000h),AR1=0001hMOV *AR1+,AC0 ;AC0=(0100001h),AR1=0002hMOV *AR1+,AC0 ;AC0=(0100002h),AR1=0000hMOV *AR1+,AC0 ;AC0=(0100000h),AR1=0001h3.2 TMS320C55x的指令系統(tǒng)的指令系統(tǒng)l兩種指令集兩種指令集u助記符指令集助記符指令集采用助記符來表示指令采用助記符來表示指令u代數(shù)指令集代數(shù)指令集 指令類似于代數(shù)表達(dá)式,運(yùn)算關(guān)系比較清楚明了指令類似于代數(shù)表達(dá)式,運(yùn)算關(guān)系比較清楚明了l助

58、記符指令和代數(shù)指令在功能上是一一對應(yīng)的,只是表示助記符指令和代數(shù)指令在功能上是一一對應(yīng)的,只是表示形式不同形式不同l在編程時只能使用一種指令集在編程時只能使用一種指令集l本節(jié)介紹助記符指令本節(jié)介紹助記符指令l指令集按操作類型可分為指令集按操作類型可分為6種:種:u算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令u位操作指令位操作指令u擴(kuò)展輔助寄存器操作指令擴(kuò)展輔助寄存器操作指令u邏輯運(yùn)算指令邏輯運(yùn)算指令u移動指令移動指令u程序控制指令程序控制指令l一條指令的屬性包括:一條指令的屬性包括:u指令指令u執(zhí)行的操作執(zhí)行的操作u是否有并行使能位是否有并行使能位u長度長度u周期周期u在流水線上的執(zhí)行段在流水線上的執(zhí)行段u執(zhí)行的

59、功能單元執(zhí)行的功能單元表表3-19 指令系統(tǒng)中使用的符號及其含義(指令系統(tǒng)中使用的符號及其含義(1)符符 號號含含 義義 可選的項(xiàng)40若選擇該項(xiàng),則該指令執(zhí)行時M40=1ACOVx累加器溢出狀態(tài)位: ACOV0,ACOV1, ACOV2, ACOV3ACx, ACy, ACz, ACw累加器AC0AC3ARx, ARy輔助寄存器: AR0, AR1, AR2, AR3, AR4, AR5, AR6, AR7Baddr寄存器位地址BitIn移進(jìn)的位:TC2或CARRYBitOut移出的位:TC2或CARRYBORROWCARRY位的補(bǔ)CARRY進(jìn)位位Cmem系數(shù)間接尋址操作數(shù)cond條件表述CS

60、R單指令重復(fù)計數(shù)寄存器Cycles 指令執(zhí)行的周期數(shù) dst 目的操作數(shù):累加器,或輔助寄存器的低16位,或臨時寄存器 表表3-19 指令系統(tǒng)中使用的符號及其含義(指令系統(tǒng)中使用的符號及其含義(2)符符 號號含含 義義Dxx位長的數(shù)據(jù)地址kxx位長的無符號常數(shù)Kxx位長的帶符號常數(shù)lxx位長的程序地址(相對于PC的無符號偏移量)Lxx位長的程序地址(相對于PC的帶符號偏移量)Lmem32位數(shù)據(jù)存儲值E表示指令是否包含并行使能位Pipe, Pipeline流水線執(zhí)行階段:D=譯碼,AD=尋址,R=讀,X=執(zhí)行Pmad程序地址值Pxx位長程序或數(shù)據(jù)絕對地址值RELOP關(guān)系運(yùn)算符:= =等于,=大于

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論