![DSP技術(shù)TMS320C55x的指令系統(tǒng)課件_第1頁](http://file4.renrendoc.com/view/7b77762ecd7ca5f2907be58c9473635d/7b77762ecd7ca5f2907be58c9473635d1.gif)
![DSP技術(shù)TMS320C55x的指令系統(tǒng)課件_第2頁](http://file4.renrendoc.com/view/7b77762ecd7ca5f2907be58c9473635d/7b77762ecd7ca5f2907be58c9473635d2.gif)
![DSP技術(shù)TMS320C55x的指令系統(tǒng)課件_第3頁](http://file4.renrendoc.com/view/7b77762ecd7ca5f2907be58c9473635d/7b77762ecd7ca5f2907be58c9473635d3.gif)
![DSP技術(shù)TMS320C55x的指令系統(tǒng)課件_第4頁](http://file4.renrendoc.com/view/7b77762ecd7ca5f2907be58c9473635d/7b77762ecd7ca5f2907be58c9473635d4.gif)
![DSP技術(shù)TMS320C55x的指令系統(tǒng)課件_第5頁](http://file4.renrendoc.com/view/7b77762ecd7ca5f2907be58c9473635d/7b77762ecd7ca5f2907be58c9473635d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章TMS320C55x的指令系統(tǒng)內(nèi)容提要
如果要熟練使用數(shù)字信號(hào)處理器,必須了解處理器的指令系統(tǒng),這樣才能編寫出精干、高效的程序。在本章中首先對(duì)TMS320C55x的尋址方式做了介紹,之后對(duì)C55x的指令系統(tǒng)進(jìn)行了詳細(xì)說明。
C55x處理器的指令系統(tǒng)可以分為6大類,包括算術(shù)運(yùn)算指令、位操作指令、擴(kuò)展輔助寄存器操作指令、邏輯運(yùn)算指令、移動(dòng)指令和程序控制指令等。而介紹的內(nèi)容包括指令格式,執(zhí)行的操作,是否有并行使能位,長(zhǎng)度,周期,在流水線上的執(zhí)行階段以及執(zhí)行的功能單元等。12023/10/16TMS320C55xDSP原理及應(yīng)用整體概述THEFIRSTPARTOFTHEOVERALLOVERVIEW,PLEASESUMMARIZETHECONTENT第一部分23.1尋址方式3.2TMS320C55x的指令系統(tǒng)第3章TMS320C55x的指令系統(tǒng)32023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)3.1尋址方式
尋址方式是指如何指定指令和操作數(shù)所在存儲(chǔ)空間的地址。C55xDSP支持三種尋址模式,可以高效、靈活地對(duì)數(shù)據(jù)空間、存儲(chǔ)映射寄存器、寄存器位和I/O空間進(jìn)行尋址,它們是:
絕對(duì)尋址模式:通過在指令中指定一個(gè)常數(shù)地址完成尋址。直接尋址模式:使用地址偏移量尋址。間接尋址模式:使用指針完成尋址。42023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)3.1.1絕對(duì)尋址模式
絕對(duì)尋址模式有三種,它們分別是:k16絕對(duì)尋址、k23絕對(duì)尋址和I/O絕對(duì)尋址。1.k16絕對(duì)尋址使用該模式尋址的指令其操作數(shù)為*abs16(#k16),其中k16是一個(gè)16位的無符號(hào)常數(shù)。尋址方法是將7位的寄存器DPH(擴(kuò)展數(shù)據(jù)頁指針XDP的高位部分)和k16級(jí)聯(lián)形成一個(gè)23位的地址,用于對(duì)數(shù)據(jù)空間的訪問。該模式可以訪問一個(gè)存儲(chǔ)單元和一個(gè)存儲(chǔ)映射寄存器。52023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)0000000.00000000000000000000001.00000000000000000000010000000000000000011111110000000000000000DPHk16數(shù)據(jù)空間0000000~00000000000000000000000~1111111111111111第0主數(shù)據(jù)頁:000000h~00FFFFh0000001~00000010000000000000000~1111111111111111第1主數(shù)據(jù)頁:010000h~01FFFFh0000010~00000100000000000000000~1111111111111111第2主數(shù)據(jù)頁:000000h~00FFFFh~~~1111111~11111111111111111111111~1111111111111111第127主數(shù)據(jù)頁:7F0000h~7FFFFFh
k16絕對(duì)尋址模式
*由于對(duì)指令進(jìn)行了擴(kuò)展,使用該模式尋址的指令不能與其他指令并行執(zhí)行。62023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)2.k23絕對(duì)尋址使用該模式尋址的指令其操作數(shù)為*(#k23),其中k23是一個(gè)23位的無符號(hào)常數(shù)。如圖3-2所示。使用這種尋址方法的指令將常數(shù)編碼為3字節(jié)(去掉最高位),與k16絕對(duì)尋址一樣,使用該模式尋址的指令不能與其他指令并行執(zhí)行。00000000000000000000000000000100000000000000000000010000000000000000011111110000000000000000k23數(shù)據(jù)空間00000000000000000000000~00000001111111111111111第0主數(shù)據(jù)頁:000000h~00FFFFh00000010000000000000000~00000011111111111111111第1主數(shù)據(jù)頁:010000h~01FFFFh~~11111110000000000000000~11111111111111111111111第127主數(shù)據(jù)頁:7F0000h~7FFFFFh72023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)3.I/O絕對(duì)尋址
對(duì)于I/O絕對(duì)尋址模式,如果使用代數(shù)指令,其操作數(shù)是*port(#k16),其中k16是一個(gè)16位無符號(hào)常數(shù);如果使用助記符指令,其操作數(shù)是port(#k16)(操作數(shù)前沒有*)。如下所示,使用該模式的指令將常數(shù)編碼為2字節(jié)。同樣,該指令不能與其他指令并行執(zhí)行。
k16I/O空間0000000000000000~
11111111111111110000h~FFFFh82023/10/16TMS320C55xDSP原理及應(yīng)用3.1.2直接尋址模式第3章TMS320C55x的指令系統(tǒng)
直接尋址有以下幾種方式:數(shù)據(jù)頁指針(DP)直接尋址、堆棧指針(SP)直接尋址、寄存器位直接尋址和外設(shè)數(shù)據(jù)頁指針(PDP)直接尋址。其中,DP直接尋址和SP直接尋址與狀態(tài)寄存器ST1-55的CPL位有關(guān):
當(dāng)CPL=0,采用DP直接尋址模式當(dāng)CPL=1,采用SP直接尋址模式
而寄存器位尋址和PDP直接尋址與CPL無關(guān)。92023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)1.DP直接尋址
在DP直接尋址方法中,23位地址的形成如圖3-3所示。其中高7位由DPH提供,用來確定主數(shù)據(jù)頁,其余低16位由兩部分組成。(1)DP:DP確定在主數(shù)據(jù)頁內(nèi)長(zhǎng)度為128字節(jié)的局部數(shù)據(jù)頁的起始地址,該起始地址可以是主數(shù)據(jù)頁內(nèi)的任何地址。(2)由匯編器計(jì)算出的7位偏移量(Doffset):偏移量的計(jì)算與訪問的是數(shù)據(jù)空間還是存儲(chǔ)映射寄存器(限定詞是mmap())有關(guān)。
由DPH和DP構(gòu)成擴(kuò)展數(shù)據(jù)頁寄存器XDP,可以將DPH和DP分別載入,也可以用一條指令載入XDP。102023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)
XDP0000000000000000000000000000010000000000000000.11111110000000000000000DPH(DP+Doffset)數(shù)據(jù)空間0000000~00000000000000000000000~1111111111111111第0主數(shù)據(jù)頁:000000h~00FFFFh0000001~00000010000000000000000~1111111111111111第1主數(shù)據(jù)頁:010000h~01FFFFh0000010~00000100000000000000000~1111111111111111第2主數(shù)據(jù)頁:020000h~02FFFFh~~
~1111111~11111110000000000000000~1111111111111111第127主數(shù)據(jù)頁:020000h~02FFFFhDP直接尋址模式
XDP112023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)2.SP直接尋址當(dāng)一條指令采用SP直接尋址模式,23位地址的形成如圖所示。其中,SPH確定高7位地址,其余16位地址由SP和7位偏移量決定,偏移量的范圍是0~127。由SPH和SP構(gòu)成了擴(kuò)展數(shù)據(jù)堆棧指針XSP。
由于在第0主數(shù)據(jù)頁,地址000000h~00005Fh為存儲(chǔ)映射寄存器保留,所以若數(shù)據(jù)棧位于該主數(shù)據(jù)頁,則可以使用的地址范圍是000060h~00FFFFh。122023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)
SP直接尋址模式
XSP000000000000000000000000000001000000000000000011111110000000000000000SPH(SP+Doffset)數(shù)據(jù)空間0000000~00000000000000000000000~1111111111111111第0主數(shù)據(jù)頁:000000h~00FFFFh0000001~00000010000000000000000~1111111111111111第1主數(shù)據(jù)頁:010000h~01FFFFh0000010~00000100000000000000000~1111111111111111第2主數(shù)據(jù)頁:020000h~02FFFFh~~~1111111~11111110000000000000000~1111111111111111第127主數(shù)據(jù)頁:020000h~02FFFFhXSP132023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)3.寄存器位尋址使用寄存器位尋址的指令其操作數(shù)是@bitoffset,該操作數(shù)是從寄存器的最低位開始的偏移值。例如,如果bitoffset為0,那么就可以訪問寄存器的最低位;如果bitoffset為3,那么就可以訪問寄存器的第3位。
只有寄存器的位測(cè)試、置位、清零、取反指令支持這種尋址模式。這種方式僅能訪問下列寄存器的各位:AC0~AC3,AR0~AR7,T0~T3.142023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)4.PDP直接尋址當(dāng)一條指令使用PDP直接尋址模式,16位I/O地址的形成如圖3-5所示。64K
16位的I/O空間分成512個(gè)外設(shè)數(shù)據(jù)頁,用9位的外設(shè)數(shù)據(jù)頁指針PDP表示,其中每一頁有128個(gè)字,由指令中的指定的7位偏移值來表示。例如,如果訪問一頁的第一個(gè)字,其偏移值為0。152023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)
PDP直接尋址模式000000000000000000000001000000000000010.0000000111111110000000PDPPoffsetI/O空間(64K字)00000000~000000000000000~1111111第0外設(shè)數(shù)據(jù)頁:0000h~007Fh00000001~000000010000000~1111111第1外設(shè)數(shù)據(jù)頁:0080h~00Fh00000010~000000100000000~1111111第2外設(shè)數(shù)據(jù)頁:0100h~017Fh~~~111111111111111第511外設(shè)數(shù)據(jù)頁:FF80h~FFFFh162023/10/16TMS320C55xDSP原理及應(yīng)用3.1.3間接尋址模式第3章TMS320C55x的指令系統(tǒng)CPU支持的間接尋址模式有AR間接尋址、雙AR間接尋址、CDP間接尋址和系數(shù)間接尋址。利用這些模式可以進(jìn)行線性或循環(huán)尋址。1.AR間接尋址模式
該模式通過一個(gè)輔助寄存器ARn(n=0,1,2,3,4,5,6,或7)訪問數(shù)據(jù)空間。而ST2-55的ARMS位決定了AR間接尋址的操作類型:當(dāng)ARMS=0,DSP模式:CPU提供DSP增強(qiáng)應(yīng)用的高效執(zhí)行功能。當(dāng)ARMS=1,控制模式:針對(duì)控制系統(tǒng)的應(yīng)用,CPU能夠優(yōu)化代碼的長(zhǎng)度。
下面分別給出了AR間接尋址的DSP模式和控制模式。
172023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)AR間接尋址DSP模式在生成地址之后增加:16位操作,ARn=ARn+1在生成地址之后減少:16位操作,ARn=ARn
1在生成地址之前增加:16位操作,ARn=ARn+1在生成地址之前減少:16位操作,ARn=ARn
1在生成地址之后,ARn加上T0或ARn中16位帶符號(hào)的常數(shù):如果C54CM=0,ARn=ARn+T0在生成地址之后,ARn減去T0或ARn中16位帶符號(hào)的常數(shù):如果C54CM=0,ARn=ARn
T0序號(hào)操作數(shù)地址修改1*ARnARn未修改2*Arn+在生成地址之后增加:16位操作,ARn=ARn+132位操作,ARn=ARn+2
3*Arn
在生成地址之后減少:16位操作,ARn=ARn132位操作,ARn=Arn2
4*+ARn在生成地址之前增加:16位操作,ARn=ARn+132位操作,ARn=ARn+25*
ARn在生成地址之前減少:16位操作,ARn=ARn132位操作,ARn=ARn2
6*(ARn+T0/AR0)在生成地址之后,ARn加上T0或ARn中16位帶符號(hào)的常數(shù):如果C54CM=0,ARn=ARn+T0如果C54CM=1,ARn=ARn+AR0182023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)AR間接尋址DSP模式(續(xù))在生成地址之后,ARn減去T0或ARn中16位帶符號(hào)的常數(shù):如果C54CM=0,ARn=ARn
T0在生成地址之后,ARn加上T0或ARn中16位帶符號(hào)的常數(shù):如果C54CM=0,ARn=ARn+T0如果C54CM=1,ARn=ARn+AR0在生成地址之后,ARn減去T0或ARn中16位帶符號(hào)的常數(shù):如果C54CM1=0,ARn=ARn
T0如果C54CM=1,ARn=ARn
AR0在生成地址之后,ARn加上T1中16位帶符號(hào)的常數(shù):在生成地址之后,ARn減去T1中16位帶符號(hào)的常數(shù):7*(ARn
T0/AR0)在生成地址之后,ARn減去T0或ARn中16位帶符號(hào)的常數(shù):如果C54CM=0,ARn=ARnT0如果C54CM=1,ARn=ARnAR08*ARn(T0/AR0)ARn未被修改。ARn被作為基指針,T0或AR0中16位帶符號(hào)常數(shù)被作為偏移量9*(ARn+T0B/AR0B)在生成地址之后,ARn加上T0或ARn中16位帶符號(hào)的常數(shù):如果C54CM=0,ARn=ARn+T0如果C54CM=1,ARn=ARn+AR0按位倒序模式相加
10*(ARn
T0B/AR0B)在生成地址之后,ARn減去T0或ARn中16位帶符號(hào)的常數(shù):如果C54CM1=0,ARn=ARn
T0如果C54CM=1,ARn=ARn
AR0按位倒序模式相減[注1]:C54CM是狀態(tài)寄存器ST1-55中TMS320C54x兼容模式。192023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)在生成地址之后,ARn加上T1中16位帶符號(hào)的常數(shù):在生成地址之后,ARn減去T1中16位帶符號(hào)的常數(shù):在生成地址之后,ARn加上T1中16位帶符號(hào)的常數(shù):在生成地址之后,ARn減去T1中16位帶符號(hào)的常數(shù):11*(ARn+T1)在生成地址之后,ARn加上T1中16位帶符號(hào)的常數(shù):ARn=ARn+T1
12*(ARn
T1)在生成地址之后,ARn減去T1中16位帶符號(hào)的常數(shù):ARn=ARnT113*ARn(T1)ARn未被修改。ARn被作為基指針,T1中16位帶符號(hào)常數(shù)被作為偏移量14*ARn(#K16)ARn未被修改。ARn被作為基指針,16位帶符號(hào)常數(shù)(K16)被作為偏移量15*+ARn(#K16)在地址生成之前,ARn加上16位帶符號(hào)常數(shù)(K16)AR間接尋址DSP模式(續(xù))202023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)在生成地址之后增加:16位操作,ARn=ARn+1序號(hào)操作數(shù)地址修改1*ARnARn未修改2*ARn+在生成地址之后增加:16位操作,ARn=ARn+132位操作,ARn=ARn+2
AR間接尋址控制模式
3*ARn
在生成地址之后減少:16位操作,ARn=ARn132位操作,ARn=ARn2
4*(ARn+T0/AR0)在生成地址之后,ARn加上T0或AR0中16位帶符號(hào)的常數(shù):如果C54CM=0,ARn=ARn+T0如果C54CM=1,ARn=ARn+AR0
5*(ARn
T0/AR0)在生成地址之后,ARn減去T0或AR0中16位帶符號(hào)的常數(shù):如果C54CM=0,ARn=ARnT0如果C54CM=1,ARn=ARnAR0
212023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)
AR間接尋址控制模式(續(xù))6*ARn(T0/AR0)ARn未被修改。ARn被作為基指針,T0或AR0中16位帶符號(hào)常數(shù)被作為偏移量7*ARn(#K16)ARn未被修改。ARn被作為基指針,16位帶符號(hào)常數(shù)(k16)被作為偏移量8*+ARn(#K16)在地址生成之前,ARn加上16位帶符號(hào)常數(shù)(k16)9*ARn(short(#k3))ARn未被修改。ARn被作為基指針,3位帶符號(hào)常數(shù)(k13)被作為偏移量222023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)2.雙AR間接尋址模式
雙AR間接尋址模式可以通過8個(gè)輔助寄存器(AR0~AR7)同時(shí)訪問兩個(gè)數(shù)據(jù)存儲(chǔ)單元,與單個(gè)AR間接訪問數(shù)據(jù)空間一樣,CPU使用一個(gè)擴(kuò)展輔助寄存器產(chǎn)生23位地址。雙AR間接尋址可以實(shí)現(xiàn)以下功能:(1)執(zhí)行一個(gè)指令同時(shí)訪問兩個(gè)16位數(shù)據(jù)存儲(chǔ)器地址。在這種情況下,兩個(gè)數(shù)據(jù)存儲(chǔ)操作數(shù)在指令中為Xmem和Ymem。例如:ADDXmem,Ymem,ACx(2)并行執(zhí)行兩條指令,每個(gè)指令都訪問一個(gè)數(shù)據(jù)存儲(chǔ)器地址。在這種情況下,操作數(shù)在指令中是Smem或Lmem。MOVSmem,dst||ANDSmem,src,dst
雙AR間接尋址操作數(shù)是AR間接尋址操作數(shù)的子集,而ARMS狀態(tài)位不影響雙AR間接尋址的操作。232023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)
雙AR間接尋址操作數(shù)
在生成地址之后增加:16位操作,ARn=ARn+1在生成地址之后減少:16位操作,ARn=ARn
1在生成地址之后,ARn加上T0或AR0中16位帶符號(hào)的常數(shù):如果C54CM=0,ARn=ARn+T0序號(hào)操作數(shù)地址修改1*ARnARn未修改2*ARn+在生成地址之后增加:16位操作,ARn=ARn+132位操作,ARn=ARn+23*ARn
在生成地址之后減少:16位操作,ARn=ARn132位操作,ARn=ARn2
4*(ARn+T0/AR0)在生成地址之后,ARn加上T0或AR0中16位帶符號(hào)的常數(shù):如果C54CM=0,ARn=ARn+T0如果C54CM=1,ARn=ARn+AR0
242023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)
雙AR間接尋址操作數(shù)(續(xù))在生成地址之后,ARn減去T0或AR0中16位帶符號(hào)的常數(shù):如果C54CM=0,ARn=ARn
T0在生成地址之后,ARn加上T1中16位帶符號(hào)的常數(shù):在生成地址之后,ARn減去T1中16位帶符號(hào)的常數(shù):序號(hào)操作數(shù)地址修改5*(ARn
T0/AR0)在生成地址之后,ARn減去T0或AR0中16位帶符號(hào)的常數(shù):如果C54CM=0,ARn=ARnT0如果C54CM=1,ARn=ARnAR0
6*ARn(T0/AR0)ARn未被修改。ARn被作為基指針,T0或AR0中16位帶符號(hào)常數(shù)被作為偏移量7*(ARn+T1)在生成地址之后,ARn加上T1中16位帶符號(hào)的常數(shù):ARn=ARn+T1
8*(ARn
T1)在生成地址之后,ARn減去T1中16位帶符號(hào)的常數(shù):ARn=ARn-T1252023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)3.CDP間接尋址模式
CDP間接尋址模式使用系數(shù)數(shù)據(jù)指針(CDP)對(duì)數(shù)據(jù)空間、寄存器位和I/O空間進(jìn)行訪問。
在生成地址之后增加:16位操作,CDP=CDP+1在生成地址之后減少:16位操作,CDP=CDP
1在地址生成之前,CDP加上16位帶符號(hào)常數(shù)(K16):序號(hào)操作數(shù)地址修改1*CDPCDP未修改2*CDP+在生成地址之后增加:16位操作,CDP=CDP+132位操作,CDP=CDP+23*CDP
在生成地址之后減少:16位操作,CDP=CDP132位操作,CDP=CDP2
4*CDP(#K16)CDP未被修改。CDP被作為基指針,16位帶符號(hào)常數(shù)(K16)被作為偏移量5*+CDP(#K16)在地址生成之前,CDP加上16位帶符號(hào)常數(shù)(K16):CDP=CDP+K16
262023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)4.系數(shù)間接尋址模式系數(shù)間接尋址模式的地址產(chǎn)生過程與使用CDP間接尋址數(shù)據(jù)空間的地址產(chǎn)生過程一樣。CDP間接尋址模式支持以下算術(shù)指令:FIR濾波、乘法、乘加、乘減和雙乘加或雙乘減。在生成地址之后增加:16位操作,CDP=CDP+1在生成地址之后減少:16位操作,CDP=CDP
1在生成地址之后,CDP加上T0或AR0中16位帶符號(hào)的常數(shù):如果C54CM=0,CDP=CDP+T0序號(hào)操作數(shù)地址修改1*CDPCDP未修改2*CDP+在生成地址之后增加:16位操作,CDP=CDP+132位操作,CDP=CDP+23*CDP
在生成地址之后減少:16位操作,CDP=CDP132位操作,CDP=CDP24*(CDP+T0/AR0)在生成地址之后,CDP加上T0或AR0中16位帶符號(hào)的常數(shù):如果C54CM=0,CDP=CDP+T0如果C54CM=1,CDP=CDP+AR0272023/10/16TMS320C55xDSP原理及應(yīng)用上述3種尋址方式都可以用于對(duì)數(shù)據(jù)存儲(chǔ)器的尋址。例3-1:*abs16(#k16)用于數(shù)據(jù)存儲(chǔ)器尋址,設(shè)DPH=03h。MOV*abs16(#2002h),T2;#k16=2002,CPU從032002h處讀取數(shù)據(jù)裝入T2例3-2:*(#k23)用于數(shù)據(jù)存儲(chǔ)器尋址。MOV*(#032002h),T2;k23=032002h,CPU從032002h處讀取數(shù)據(jù)裝入T23.1.4數(shù)據(jù)存儲(chǔ)器的尋址例3-3:@Daddr用于數(shù)據(jù)存儲(chǔ)器尋址,設(shè)DPH=03h,DP=0000h。MOV@0005h,T2;DPH:(DP+Doffset)=03:(0000h+0005h)=030005h;CPU從030005h處讀取數(shù)據(jù)裝入T2第3章TMS320C55x的指令系統(tǒng)282023/10/16TMS320C55xDSP原理及應(yīng)用例3-4:*SP(offset)用于數(shù)據(jù)存儲(chǔ)器尋址,設(shè)SPH=0,SP=FF00h。MOV*SP(5),T2;SPH:(SP+offset)=00FF05h,CPU從00FF05h處讀取數(shù)據(jù);裝入T2例3-5:*ARn用于數(shù)據(jù)存儲(chǔ)器尋址,設(shè)ARn工作在線性尋址狀態(tài)。MOV*AR4,T2;AR4H:AR4=XAR4,CPU從XAR4處讀取數(shù)據(jù)裝入T2.例3-6:*(ARn+T0)用于數(shù)據(jù)存儲(chǔ)器尋址,設(shè)ARn工作在線性尋址狀態(tài)。MOV*(AR4+T0),T2;AR4H:AR4=XAR4,CPU從XAR4處讀取數(shù)據(jù)裝入T2,然后;AR4=AR4+T0第3章TMS320C55x的指令系統(tǒng)3.1.4數(shù)據(jù)存儲(chǔ)器的尋址292023/10/16TMS320C55xDSP原理及應(yīng)用3.1.5存儲(chǔ)器映射寄存器(MMR)的尋址例3-8:*abs16(#k16)用于MMR尋址,DPH必須為00h。MOV*abs16(#AR2),T2;DPH:k16=000012h(AR2的地址為000012h);CPU從000012h處讀取數(shù)據(jù)裝入T2。例3-9:*(#k23)用于MMR尋址。MOV*(#AR2),T2;k23=000012h(AR2的地址為000012h);CPU從000012h處讀取數(shù)據(jù)裝入T2。第3章TMS320C55x的指令系統(tǒng)302023/10/16TMS320C55xDSP原理及應(yīng)用3.1.6寄存器位的尋址直接和間接尋址方式可以用于對(duì)寄存器位的尋址。例3-10:@bitoffset用于對(duì)寄存器位的尋址。BSET@0,AC3;CPU將AC3的位0置為1例3-11:*ARn用于對(duì)寄存器位的尋址,設(shè)AR0=0。BSET*AR0,AC3;CPU將AC3的位0置為1第3章TMS320C55x的指令系統(tǒng)312023/10/16TMS320C55xDSP原理及應(yīng)用3.1.7I/O空間的尋址絕對(duì)、直接和間接尋址方式可以用于對(duì)I/O空間的尋址。例3-12:*port(#k16)用于對(duì)I/O空間的尋址。(1)MOVport(#2),AR2;CPU從I/O地址0002h讀取數(shù)據(jù)進(jìn)AR2(2)MOVAR2,port(#0F000h);CPU把AR2的數(shù)據(jù)輸出到I/O地址0F000h例3-13:*ARn用于對(duì)I/O空間的尋址,設(shè)AR4=FF80h,AR5=FFFFh。(1)MOVport(*AR4),T2;CPU從FF80h讀取數(shù)據(jù)進(jìn)T2。(2)MOVT2,port(*AR5);CPU把T2的數(shù)據(jù)輸出到I/O地址0FFFFh。第3章TMS320C55x的指令系統(tǒng)322023/10/16TMS320C55xDSP原理及應(yīng)用匯編程序語法TMS320的匯編程序包含匯編指令(偽指令,assemblerdirectives)、匯編語言指令(assemblylanguageinstructions)、宏指令(macrodirectives)和注釋(comments)。33C55的指令既可以是助記符方式,也可以是代數(shù)式方式兩種指令集在功能上是一一對(duì)應(yīng)的,只是表示形式不同。
代數(shù)指令集中的指令類似于代數(shù)表達(dá)式,運(yùn)算關(guān)系比較清楚;助記符指令集與計(jì)算機(jī)匯編語言相似,采用助記符來表示指令。注意:DSP的軟件開發(fā)工具只支持單一的指令形式,不支持助記符指令和代數(shù)指令的混合形式。術(shù)語、符號(hào)和縮寫見表3-6;P46運(yùn)算符見表3-7;P4734助記符方式匯編程序語法[label][:]mnemonic[operandlist][;comment][標(biāo)號(hào)][:]
助記符[操作數(shù)][;注釋]35匯編程序語法所有的語句必須由語句標(biāo)號(hào)、空格、*號(hào)或;號(hào)開頭。語句標(biāo)號(hào)不是必須的,如果用,就必須在第一列。語句中的各部分之間,由一個(gè)或多個(gè)空格分開。注釋不是必須的。注釋可以從第一列的*號(hào)或;號(hào)開頭;如果不是從第一列開始,就必須用;號(hào)開頭。36語句標(biāo)號(hào)
由字母、數(shù)字、_、$組成,最多不超過32個(gè)字符,對(duì)大小寫敏感,第一個(gè)字符不能是數(shù)字。后跟:,但分號(hào)不是語句標(biāo)號(hào)的組成部分。37助記符助記符不允許從第一列開始,否則被認(rèn)為是語句標(biāo)號(hào)。助記符可以是機(jī)器指令(如MAC,MPYM,SQA等)、偽指令(如.data,.list,.set等)、宏指令(如.macro,.var,.mexit等)和宏調(diào)用。38操作數(shù)操作數(shù)可以是常數(shù)、符號(hào)或表達(dá)式。當(dāng)操作數(shù)多于一個(gè)時(shí),用逗號(hào)分開。39常數(shù)二進(jìn)制常數(shù)(如01B或01b)八進(jìn)制常數(shù)(如10Q或10q)十進(jìn)制常數(shù)(如23)十六進(jìn)制常數(shù)(如78H或78h)字符常數(shù)(如‘A’或‘b’)字符串(如“sampleprogram”)匯編時(shí)使用的常數(shù)40表達(dá)式表達(dá)式是一個(gè)常數(shù)、符號(hào)、或用算術(shù)運(yùn)算符連接起來的常數(shù)或符號(hào)。表達(dá)式的值的范圍為-32768到3276741指令狀態(tài)位和執(zhí)行條件
一條指令的執(zhí)行可能會(huì)受到某些狀態(tài)位的影響,也可能會(huì)改變某些狀態(tài)位的值,這些狀態(tài)位都在狀態(tài)寄存器。422023/10/16TMS320C55xDSP原理及應(yīng)用1.M40:40比特運(yùn)算模式,用于控制D單元的運(yùn)行模式,會(huì)影響累加器溢出,進(jìn)位標(biāo)志等。M40=0時(shí),D單元按32位運(yùn)算模式,因此累加器溢出、進(jìn)位、符號(hào)擴(kuò)展和移位操作都以第31比特為準(zhǔn)。M40=1時(shí),D單元按40位運(yùn)算模式,因此累加器溢出、進(jìn)位、符號(hào)擴(kuò)展和移位操作都以第39比特為準(zhǔn)。432023/10/16TMS320C55xDSP原理及應(yīng)用442023/10/16TMS320C55xDSP原理及應(yīng)用452023/10/16TMS320C55xDSP原理及應(yīng)用462023/10/16TMS320C55xDSP原理及應(yīng)用472023/10/16TMS320C55xDSP原理及應(yīng)用482023/10/16TMS320C55xDSP原理及應(yīng)用492023/10/16TMS320C55xDSP原理及應(yīng)用502023/10/16TMS320C55xDSP原理及應(yīng)用512023/10/16TMS320C55xDSP原理及應(yīng)用TMS320C55x匯編指令集按操作類型可分為以下6種:算術(shù)運(yùn)算指令位操作指令擴(kuò)展輔助寄存器操作指令邏輯運(yùn)算指令移動(dòng)指令程序控制指令
指令一條指令的屬性包括:語法(Syntax)執(zhí)行的操作操作數(shù)相關(guān)的狀態(tài)位是否有并行使能位長(zhǎng)度(Size)執(zhí)行周期(Cycles)在流水線(Pipeline)上的執(zhí)行階段在哪個(gè)功能單元執(zhí)行(Executed)是否可以重復(fù)執(zhí)行等。52532023/10/16TMS320C55xDSP原理及應(yīng)用算術(shù)運(yùn)算指令
加法指令
減法指令
乘法指令
乘加指令
乘減指令
雙乘加/減指令
特殊操作指令54加法指令助記符指令代數(shù)指令說明ADD[src,]dstdst=dst+src兩個(gè)寄存器的內(nèi)容相加ADDk4,dstdst=dst+k44位無符號(hào)立即數(shù)加到寄存器ADDK16,[src,]dstdst=src+K1616位有符號(hào)立即數(shù)和源寄存器的內(nèi)容相加ADDSmem,[src,]dstdst=src+Smem
操作數(shù)和源寄存器的內(nèi)容相加ADDACx<<Tx,ACyACy=ACy+(ACx<<Tx)累加器ACx根據(jù)Tx中的內(nèi)容移位后,再和累加器ACy相加
ADDACx<<#SHIFTW,ACyACy=ACy+(ACx<<#SHIFTW)累加器ACx移位后與累加器ACy相加55加法指令(續(xù))ADDK16<<#16,[ACx,]ACyACy=ACx+(K16<<#16)16位有符號(hào)立即數(shù)左移16位后加到累加器ADDK16<<#SHFT,[ACx,]ACyACy=ACx+(K16<<#SHFT)16位有符號(hào)立即數(shù)移位后加到累加器ADDSmem<<Tx,[ACx,]ACyACy=ACx+(Smem<<Tx)操作數(shù)根據(jù)Tx中的內(nèi)容移位后,再和累加器ACx相加ADDSmem<<#16,[ACx,]ACyACy=ACx+(Smem<<#16)操作數(shù)左移16位后,再和累加器ACx相加ACyACy=ACx+uns(Smem)+CARRY操作數(shù)帶進(jìn)位加到累加器ADD[uns()Smem[]],[ACx,]ACyACy=ACx+uns(Smem)操作數(shù)加到累加器[ACx,]ACyACy=ACx+(uns(Smem)<<#SHIFTW)操作數(shù)移位后加到累加器ADDdbl(Lmem),[ACx,]ACyACy=ACx+dbl(Lmem)32位操作數(shù)加到累加器ADDXmem,Ymem,ACxACx=(Xmem<<#16)+(Ymem<<#16)兩操作數(shù)均左移16位后加到累加器ADDK16,SmemSmem=Smem+K16操作數(shù)和16位有符號(hào)立即數(shù)相加ADD[R]V[ACx,]ACyACy=rnd(ACy+|ACx|)與絕對(duì)值相加56減法指令助記符指令代數(shù)指令說明SUB[src,]dstdst=dst–src兩個(gè)寄存器的內(nèi)容相減SUBk4,dstdst=dst–k4寄存器的內(nèi)容減去4位無符號(hào)立即數(shù)SUBK16,[src,]dstdst=dst–K16寄存器的內(nèi)容減去16位有符號(hào)立即數(shù)SUBSmem,[src,]dstdst=dst–Smem寄存器的內(nèi)容減去操作數(shù)SUBsrc,Smem,dstdst=Smem–src操作數(shù)減去源寄存器的內(nèi)容SUBACx<<Tx,ACyACy=ACy–(ACx<<Tx)累加器ACx根據(jù)Tx中的內(nèi)容移位后,作為減數(shù)和累加器ACy相減57減法指令(續(xù))SUBACx<<#SHIFTW,ACyACy=ACy–(ACx<<#SHIFTW)累加器ACx移位后,作為減數(shù)和累加器ACy相減SUBK16<<#16,[ACx,]ACyACy=ACx–(K16<<#16)16位有符號(hào)立即數(shù)左移16位后,作為減數(shù)和累加器ACx相減SUBK16<<#SHFT,[ACx,]ACyACy=ACx–(K16<<#SHFT)16位有符號(hào)立即數(shù)移位后,作為減數(shù)和累加器ACx相減SUBSmem<<Tx,[ACx,]ACyACy=ACx–(Smem<<Tx)操作數(shù)根據(jù)Tx中的內(nèi)容移位后,作為減數(shù)和累加器ACx相減SUBSmem<<#16,[ACx,]ACyACy=ACx–(Smem<<#16)操作數(shù)左移16位后,作為減數(shù)和累加器ACx相減SUBACx,Smem<<#16,ACyACy=(Smem<<#16)–ACx操作數(shù)左移16位后,作為被減數(shù)和累加器ACx相減58SUB[uns(]Smem[)]<<#SHIFTW,[ACx,]ACyACy=ACx–(uns(Smem)<<#SHIFTW)從累加器中減去移位后的操作數(shù)SUBdbl(Lmem),[ACx,]ACyACy=ACx–dbl(Lmem)從累加器中減去32位操作數(shù)SUBACx,dbl(Lmem),ACyACy=dbl(Lmem)–Acx32位操作數(shù)減去累加器SUBXmem,Ymem,ACxACx=(Xmem<<#16)–(Ymem<<#16)兩操作數(shù)均左移16位后相減減法指令(續(xù))59條件加減法指令助記符指令代數(shù)指令說明ADDSUBCCSmem,ACx,TCx,ACyACy=adsc(Smem,ACx,TCx)IfTCx=1ACy=ACx+(Smem<<#16)elseACy=ACx-(Smem<<#16)ADDSUBCCSmem,ACx,TC1,TC2,ACyACy=adsc(Smem,ACx,TC1,TC2)IfTC2=1ACy=ACxIfTC2=0andTC1=1ACy=ACx+(Smem<<#16)IfTC2=0andTC1=0ACy=ACx–(Smem<<#16)
ADDSUBCCSmem,ACx,Tx,TC1,TC2,ACyACy=ads2c(Smem,ACx,Tx,TC1,TC2)IfTC2=1andTC1=1ACy=ACx+(Smem<<#16)IfTC2=0andTC1=1ACy=ACx+(Smem<<Tx)IfTC2=1andTC1=0ACy=ACx–(Smem<<#16)IfTC2=0andTC1=0ACy=ACx–(Smem<<Tx)
60乘法指令助記符指令代數(shù)指令說明SQR[R][ACx,]ACyACy=rnd(ACx*ACx)計(jì)算累加器ACx高位部分(32~16位)的平方值,結(jié)果舍入后放入累加器ACyMPY[R][ACx,]ACyACy=rnd(ACy*ACx)計(jì)算累加器ACx和ACy高位部分(32~16位)的乘積,結(jié)果舍入后放入累加器ACyMPY[R]Tx,[ACx,]ACyACy=rnd(ACx*Tx)計(jì)算累加器ACx高位部分(32~16位)和Tx中內(nèi)容的乘積,結(jié)果舍入后放入累加器ACyMPYK[R]K8,[ACx,]ACyACy=rnd(ACx*K8)計(jì)算累加器ACx高位部分(32~16位)和8位有符號(hào)立即數(shù)的乘積,結(jié)果舍入后放入累加器ACy61MPYK[R]K16,[ACx,]ACyACy=rnd(ACx*K16)計(jì)算累加器ACx高位部分(32~16位)和16位有符號(hào)立即數(shù)的乘積,結(jié)果舍入后放入累加器ACyMPYM[R][T3=]Smem,Cmem,ACxACx=rnd(Smem*coef(Cmem))[,T3=Smem]兩個(gè)操作數(shù)相乘,結(jié)果舍入后放入累加器ACxSQRM[R][T3=]Smem,ACxACx=rnd(Smem*Smem)[,T3=Smem]操作數(shù)的平方,結(jié)果舍入后放入累加器ACxMPYM[R][T3=]Smem,[ACx,]ACyACy=rnd(Smem*ACx)[,T3=Smem]操作數(shù)和累加器ACx相乘,結(jié)果舍入后放入累加器ACyMPYMK[R][T3=]Smem,K8,ACxACx=rnd(Smem*K8)[,T3=Smem]操作數(shù)和8位有符號(hào)立即數(shù)相乘,結(jié)果舍入后放入累加器ACxMPYM[R][40][T3][uns(]Xmem[)],[uns()Ymem[]],ACxACx=M40(rnd(uns(Xmem)*uns(Ymem)))[,T3=Xmem]兩數(shù)據(jù)存儲(chǔ)器操作數(shù)相乘,結(jié)果舍入后放入累加器ACxMPYM[R][U][T3=]Smem,Tx,ACxACx=rnd(uns(Tx*Smem))[,T3=Smem]Tx的內(nèi)容和操作數(shù)相乘,結(jié)果舍入后放入累加器ACx乘法指令(續(xù))62乘加指令助記符指令代數(shù)指令說明SQA[R][ACx,]ACyACy=rnd(ACy+(ACx*ACx))累加器ACy和累加器ACx的乘方相加,結(jié)果舍入后放入累加器ACyMAC[R]ACx,Tx,ACy[,ACy]ACy=rnd(ACy+(ACx*Tx))累加器ACx和Tx的內(nèi)容相乘后,再與累加器ACy相加,結(jié)果舍入后放入累加器ACyMAC[R]ACy,Tx,ACx,ACyACy=rnd((ACy*Tx)+ACx)累加器ACy和Tx的內(nèi)容相乘后,再與累加器ACx相加,結(jié)果舍入后放入累加器ACyMACK[R]Tx,K8,[ACx,]ACyACy=rnd(ACx+(Tx*K8))Tx的內(nèi)容和8位有符號(hào)立即數(shù)相乘后,再與累加器ACx相加,結(jié)果舍入后放入累加器ACy63乘加指令(續(xù))MACMK[R][T3=]Smem,K8,[ACx,]ACySmem]操作數(shù)和8位有符號(hào)立即數(shù)相乘,再與累加器ACx相加,結(jié)果舍入后放入累加器ACyMACM[R][40][T3=][uns()Xmem[]],[uns()Ymem[]],[ACx,]ACy(Ymem))))[,T3=Xmem]兩數(shù)據(jù)存儲(chǔ)器操作數(shù)相乘,再與累加器ACx相加,結(jié)果舍入后放入累加器ACyMACM[R][40][T3=][uns()Xmem[]],[uns()Ymem[]],ACx>>#16[,ACy](Xmem)*uns(Ymem))))[,T3=Xmem]兩數(shù)據(jù)存儲(chǔ)器操作數(shù)相乘,再與累加器ACx右移16位后的值相加,結(jié)果舍入后放入累加器ACy64乘減指令助記符指令代數(shù)指令說明SQS[R][ACx,]ACyACy=rnd(ACy–(ACx*ACx))累加器ACy減去累加器ACx的平方,結(jié)果舍入后放入累加器ACyMAS[R]Tx,[ACx,]ACyACy=rnd(ACy–(ACx*Tx))累加器ACy減去累加器ACx和Tx內(nèi)容的乘積,結(jié)果舍入后放入累加器ACyMASM[R][T3=]Smem,Cmem,ACxACx=rnd(ACx–(Smem*Cmem))[,T3=Smem]累加器ACx減去兩個(gè)操作數(shù)的乘積,結(jié)果舍入后放入累加器ACxSQSM[R][T3=]Smem,[ACx,]ACyACy=rnd(ACx–(Smem*Smem))[,T3=Smem]累加器ACx減去一個(gè)操作數(shù)的平方,結(jié)果舍入后放入累加器ACyMASM[R][T3=]Smem,[ACx,]ACyACy=rnd(ACy–(Smem*ACx))[,T3=Smem]累加器ACy減去操作數(shù)和累加器ACx的乘積,結(jié)果舍入后放入累加器ACyMASM[R][T3=]Smem,Tx,[ACx,]ACyACy=rnd(ACx–(Tx*Smem))[,T3=Smem]累加器ACx減去Tx的內(nèi)容和操作數(shù)的乘積,結(jié)果舍入后放入累加器ACyMASM[R][40][T3=][uns()Xmem[]],
[uns(]Ymem[)],[ACx,]ACyACy=M40(rnd(ACx–(uns(Xmem)*uns(Ymem))))[,T3=Xmem]累加器ACx減去兩數(shù)據(jù)存儲(chǔ)器操作數(shù)的乘積,結(jié)果舍入后放入累加器ACy65
雙乘加/雙乘減指令助記符指令代數(shù)指令說明MPY[R][40][uns(]Xmem[)],uns(]Cmem[)],ACx::MPY[R][40][uns(]Ymem[)],[uns()Cmem[]],ACy
ACx=M40(rnd(uns(Xmem)*uns(coef(Cmem)))),ACy=M40(rnd(uns(Ymem)*uns(coef(Cmem))))
在一個(gè)周期內(nèi)同時(shí)完成下列算術(shù)運(yùn)算:兩個(gè)操作數(shù)相乘MAC[R][40][uns(]Xmem[)],[uns(]Cmem[)],ACx::MPY[R][40][uns(]Ymem[)],[uns()Cmem[]],ACyACx=M40(rnd(ACx+(uns(Xmem)*uns(coef(Cmem))))),ACy=M40(rnd(uns(Ymem)*uns(coef(Cmem)))))
在一個(gè)周期內(nèi)同時(shí)完成下列算術(shù)運(yùn)算:累加器ACx與兩個(gè)操作數(shù)的乘積相加,結(jié)果舍入后放入累加器ACx;兩個(gè)操作數(shù)相乘,結(jié)果舍入后放入累加器ACy66MAS[R][40][uns(]Xmem[)],[uns(]Cmem[)],ACx::MPY[R][40][uns(]Ymem[)],[uns(]Cmem[)],ACyACx=M40(rnd(ACx–(uns(Xmem)*uns(coef(Cmem))))),ACy=M40(rnd(uns(Ymem)*uns(coef(Cmem))))
在一個(gè)指令周期內(nèi)同時(shí)完成下列算術(shù)運(yùn)算:累加器ACx減去兩個(gè)操作數(shù)的乘積,結(jié)果舍入后放入累加器ACx;兩個(gè)操作數(shù)相乘,結(jié)果舍入后放入累加器ACy
雙乘加/雙乘減指令(續(xù))AMARXmem::MPY[R][40][uns(]Ymem[)],[uns()Cmem[]],ACxmar(Xmem),ACx=M40(rnd(uns(Ymem)*uns(coef(Cmem))))在一個(gè)指令周期內(nèi)同時(shí)完成下列算術(shù)運(yùn)算:修改操作數(shù)的值;兩個(gè)操作數(shù)的乘法運(yùn)算MAC[R][40][uns(]Xmem[)],[uns(]Cmem[)],ACx::MAC[R][40][uns(]Ymem[)],[uns(]Cmem[)],ACyACx=M40(rnd(ACx+(uns(Xmem)*uns(Cmem)))),ACy=M40(rnd(ACy+(uns(Ymem)*uns(Cmem))))在一個(gè)指令周期內(nèi)同時(shí)完成下列算術(shù)運(yùn)算:累加器和兩個(gè)操作數(shù)的乘積相加MAS[R][40][uns(]Xmem[)],[uns(]Cmem[)],ACx::MAC[R][40][uns(]Ymem[)],[uns(]Cmem[)],ACyACx=M40(rnd(ACx–(uns(Xmem)*uns(Cmem)))),ACy=M40(rnd(ACy+(uns(Ymem)*uns(Cmem))))在一個(gè)指令周期內(nèi)同時(shí)完成下列算術(shù)運(yùn)算:累加器和兩個(gè)操作數(shù)的乘積相減;累加器和兩個(gè)操作數(shù)的乘積相加67隱含并行指令隱含并行指令完成的操作包括:加—存儲(chǔ)、乘加/乘減—存儲(chǔ)、加/減—存儲(chǔ)、裝載—存儲(chǔ)和乘加/乘減—裝載助記符指令代數(shù)指令說明MPYM[R][T3=]Xmem,Tx,ACy::MOVHI(ACx<<T2),YmemACy=rnd(Tx*Xmem)[,T3=Xmem],Ymem=HI(ACx<<T2)并行執(zhí)行以下運(yùn)算:Tx內(nèi)容和操作數(shù)相乘,結(jié)果舍入后放入累加器ACy;累加器ACx左移后高16位賦值給YmemMACM[R][T3=]Xmem,Tx,ACy::MOVHI(ACx<<T2),YmemACy=rnd(ACy+(Tx*Xmem))[,T3=Xmem],Ymem=HI(ACx<<T2)并行執(zhí)行以下運(yùn)算:Tx內(nèi)容和操作數(shù)相乘,再和累加器ACy相加,結(jié)果舍入后放入累加器ACy;累加器ACx左移后高16位賦值給Ymem68MASM[R][T3=]Xmem,Tx,ACy::MOVHI(ACx<<T2),YmemACy=rnd(ACy–(Tx*Xmem))[,T3=Xmem],Ymem=HI(ACx<<T2)并行執(zhí)行以下運(yùn)算:Tx內(nèi)容和操作數(shù)相乘,再作為被減數(shù)和累加器ACy相減,結(jié)果舍入后放入累加器ACy;累加器ACx左移后高16位賦值給YmemADDXmem<<#16,ACx,ACy::MOVHI(ACy<<T2),YmemACy=ACx+(Xmem<<#16),Ymem=HI(ACy<<T2)并行執(zhí)行以下運(yùn)算:操作數(shù)左移16位,再和累加器ACx相加,結(jié)果放入累加器ACy;累加器ACy左移后高16位賦值給YmemSUBXmem<<#16,ACx,ACy::MOVHI(ACy<<T2),YmemACy=(Xmem<<#16)–ACx,Ymem=HI(ACy<<T2)并行執(zhí)行以下運(yùn)算:操作數(shù)左移16位,再減去累加器ACx,結(jié)果放入累加器ACy;累加器ACy左移后高16位賦值給YmemMOVXmem<<#16,ACy::MOVHI(ACx<<T2),YmemACy=Xmem<<#16,Ymem=HI(ACx<<T2)并行執(zhí)行以下運(yùn)算:操作數(shù)左移16位,結(jié)果放入累加器ACy;累加器ACx左移后高16位賦值給Ymem隱含并行指令(續(xù))69隱含并行指令(續(xù))MACM[R][T3=]Xmem,Tx,ACx::MOVYmem<<#16,ACyACx=rnd(ACx+(Tx*Xmem))[,T3=Xmem],ACy=Ymem<<#16并行執(zhí)行以下運(yùn)算:Tx內(nèi)容和操作數(shù)相乘,再和累加器ACx相加,結(jié)果舍入后放入累加器ACx;操作數(shù)左移16位后,結(jié)果放入累加器AcyMASM[R][T3=]Xmem,Tx,ACx::MOVYmem<<#16,ACyACx=rnd(ACx–(Tx*Xmem))[,T3=Xmem],ACy=Ymem<<#16并行執(zhí)行以下運(yùn)算:Tx內(nèi)容和操作數(shù)相乘,再作為被減數(shù)和累加器ACx相減,結(jié)果舍入后放入累加器ACx;操作數(shù)左移16位后,結(jié)果放入累加器ACy70特殊操作指令比較和選擇極值指令最大/最小值指令存儲(chǔ)器比較指令寄存器比較指令帶符號(hào)移位指令修改輔助寄存器(MAR)指令修改堆棧指針指令絕對(duì)距離指令絕對(duì)值指令FIR濾波指令最小均方(LMS)指令補(bǔ)碼指令,歸一化指令,飽和和舍入指令,平方差指令71位操作指令位域比較指令位域擴(kuò)展和抽取指令存儲(chǔ)器位操作指令寄存器位操作指令狀態(tài)位設(shè)置指令C55x支持的位操作指令可以對(duì)操作數(shù)進(jìn)行位比較、位計(jì)數(shù)、設(shè)置、擴(kuò)展和抽取等操作。722023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)(1)位域比較指令BANDSmem,k16,TCx;If(((Smem)ANDk16)==0),TCx=0;elseTCx=1例如:BAND*AR3,#0060h,TC1執(zhí)行前00400執(zhí)行后00401*AR3TC1*AR3TC1732023/10/16TMS320C55xDSP原理及應(yīng)用(2)位計(jì)數(shù)指令
BCNTACx,ACy,TCx,Tx;Tx=(ACxANDACy)中1的個(gè)數(shù);若Tx為奇數(shù),則TCx=1;反之TCx=0例如:BCNTAC1,AC2,TC1,T1;T1=(AC1與AC2)中1的個(gè)數(shù),個(gè)數(shù)是奇數(shù),TC1=1執(zhí)行前AC1AC2T1TC17E23554FC00FE340567800000執(zhí)行后AC1AC2T1TC17E23554FC00FE3405678000B1742023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)(3)位域抽取指令①指令BFXTRk16,ACx,dst;從LSB到MSB將k16中非零位對(duì)應(yīng)的ACx中的位抽取 ;出來,依次放到dst的LSB中位域抽取例如:
BFXTR#0606h,AC0,AC1位域抽取,將0606h非零位對(duì)應(yīng)的AC0中的比特位抽出來,依次放到AC1的LSB中。752023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)(4)存儲(chǔ)器位操作指令存儲(chǔ)器位操作包括測(cè)試、清零、置位和取反。
助記符指令代數(shù)指令說明BTSTsrc,Smem,TCxTCx=bit(Smem,src)以src的4個(gè)LSB為位地址,測(cè)試Smem的對(duì)應(yīng)位BNOTsrc,Smemcbit(Smem,src)以src的4個(gè)LSB為位地址,取反Smem的對(duì)應(yīng)位BCLRsrc,Smembit(Smem,src)=#0以src的4個(gè)LSB為位地址,清零Smem的對(duì)應(yīng)位BSETsrc,Smembit(Smem,src)=#1以src的4個(gè)LSB為位地址,置位Smem的對(duì)應(yīng)位存儲(chǔ)器位操作指令762023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)存儲(chǔ)器位操作指令(續(xù))助記符指令代數(shù)指令說明BTSTSETk4,Smem,TCxTCx=bit(Smem,k4),bit(Smem,k4)=#1以k4為位地址,測(cè)試并置位Smem的對(duì)應(yīng)位BTSTCLRk4,Smem,TCxTCx=bit(Smem,k4),bit(Smem,k4)=#0以k4為位地址,測(cè)試并清零Smem的對(duì)應(yīng)位BTSTNOTk4,Smem,TCxTCx=bit(Smem,k4),cbit(Smem,k4)以k4為位地址,測(cè)試并取反Smem的對(duì)應(yīng)位BTSTk4,Smem,TCxTCx=bit(Smem,k4)以k4為位地址,測(cè)試Smem的對(duì)應(yīng)位772023/10/16TMS320C55xDSP原理及應(yīng)用第3章TMS320C55x的指令系統(tǒng)(5)寄存器位操作指令寄存器位操作包括測(cè)試、清零、置位和取反。
寄存器位操作指令助記符指令代數(shù)指令說明BTSTBaddr,src,TCxTCx=bit(src,Baddr)以Baddr的6/4個(gè)LSB為位地址,測(cè)試src的對(duì)應(yīng)位(6對(duì)應(yīng)src是累加器,4對(duì)應(yīng)src是輔助或臨時(shí)寄存器)BNOTBaddr,srccbit(src,Baddr)以Baddr的6/4個(gè)LSB為位地址,取反src的對(duì)應(yīng)位BCLRBaddr,src
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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-2030全球無線智能振動(dòng)監(jiān)測(cè)傳感器行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球FinFET 3D晶體管行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球無人潛水器用于海上石油和天然氣行業(yè)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球手機(jī)支付安全行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)納米粒度及Zeta電位分析儀行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球高效粘泥剝離劑行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025區(qū)域代理合同模板范本
- 供水工程承包合同
- 音響設(shè)備購(gòu)銷合同范本
- 2025攪拌站委托經(jīng)營(yíng)合同書修改版
- 輸變電工程監(jiān)督檢查標(biāo)準(zhǔn)化清單-質(zhì)監(jiān)站檢查
- 2024-2025學(xué)年北京海淀區(qū)高二(上)期末生物試卷(含答案)
- 【超星學(xué)習(xí)通】馬克思主義基本原理(南開大學(xué))爾雅章節(jié)測(cè)試網(wǎng)課答案
- 2024年中國(guó)工業(yè)涂料行業(yè)發(fā)展現(xiàn)狀、市場(chǎng)前景、投資方向分析報(bào)告(智研咨詢發(fā)布)
- 化工企業(yè)重大事故隱患判定標(biāo)準(zhǔn)培訓(xùn)考試卷(后附答案)
- 工傷賠償授權(quán)委托書范例
- 食堂餐具炊具供貨服務(wù)方案
- 員工安全健康手冊(cè)
- 2024化工園區(qū)危險(xiǎn)品運(yùn)輸車輛停車場(chǎng)建設(shè)規(guī)范
- 自然科學(xué)基礎(chǔ)(小學(xué)教育專業(yè))全套教學(xué)課件
- 華為客服制度
評(píng)論
0/150
提交評(píng)論