![第5章TMS320C54x尋址方式DSP原理與開發(fā)實例_第1頁](http://file4.renrendoc.com/view/f9a0a40155e5830db11fea914c1f66b2/f9a0a40155e5830db11fea914c1f66b21.gif)
![第5章TMS320C54x尋址方式DSP原理與開發(fā)實例_第2頁](http://file4.renrendoc.com/view/f9a0a40155e5830db11fea914c1f66b2/f9a0a40155e5830db11fea914c1f66b22.gif)
![第5章TMS320C54x尋址方式DSP原理與開發(fā)實例_第3頁](http://file4.renrendoc.com/view/f9a0a40155e5830db11fea914c1f66b2/f9a0a40155e5830db11fea914c1f66b23.gif)
![第5章TMS320C54x尋址方式DSP原理與開發(fā)實例_第4頁](http://file4.renrendoc.com/view/f9a0a40155e5830db11fea914c1f66b2/f9a0a40155e5830db11fea914c1f66b24.gif)
![第5章TMS320C54x尋址方式DSP原理與開發(fā)實例_第5頁](http://file4.renrendoc.com/view/f9a0a40155e5830db11fea914c1f66b2/f9a0a40155e5830db11fea914c1f66b25.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第5章TMS320C54x尋址方式DSP原理與開發(fā)實例2【重點難點】★直接尋址★間接尋址★堆棧尋址★分支轉(zhuǎn)移★調(diào)用與返回★復(fù)位和中斷3程序執(zhí)行過程§5.1程序執(zhí)行過程1、指令周期開始。
DSP首先從PC寄存器中獲取指令地址,然后,將該地址輸出到PAB總線。最后,獲取相應(yīng)指令。2、獲取操作數(shù)。
DSP根據(jù)指令要求從相應(yīng)位置獲取操作數(shù)。3、進(jìn)行運算并保存。根據(jù)指令功能,將操作數(shù)送到相應(yīng)的運算單元中,進(jìn)行相關(guān)運算。然后,將運算結(jié)果送入指定的位置。4、調(diào)整PC的值。根據(jù)本條指令是否需要PC跳轉(zhuǎn),更新PC寄存器的值,為程序下一條指令的執(zhí)行做好準(zhǔn)備。4數(shù)據(jù)尋址§5.2數(shù)據(jù)尋址★C54x芯片的尋址方式可以分為兩類:數(shù)據(jù)尋址和程序?qū)ぶ贰?/p>
C54x共有7種有效的數(shù)據(jù)尋址方式:
▲立即尋址:指令中嵌有固定的數(shù),主要用于初始化;
▲絕對尋址:利用16位地址尋址存儲單元;
▲累加器尋址:把累加器的內(nèi)容作為地址;
▲直接尋址:利用數(shù)據(jù)存儲器頁指針和堆棧指針尋址;
▲間接尋址:利用輔助寄存器作為地址指針;
▲存儲器映像寄存器尋址:修改映像寄存器中的值,不影響當(dāng)前數(shù)據(jù)存儲器頁指針和堆棧指針的值;
▲堆棧尋址:用來管理系統(tǒng)堆棧中的操作5數(shù)據(jù)尋址◆立即尋址,指令中包含了立即操作數(shù),操作數(shù)緊隨操作碼存放在程序存儲器中?!籼攸c:運行速度較快,但需占用程序存儲空間,并且數(shù)值不能改變。◆用途:用于表示常數(shù)或?qū)拇嫫鞒跏蓟??!魞煞N立即數(shù)形式:
3、5、8或9位短立即數(shù)
16位長立即數(shù)?!?.2.1立即尋址63位立即數(shù)
5位立即數(shù)
8位立即數(shù)
9位立即數(shù)
16位立即數(shù)
LDLDFRAMELDRPTLDADDADDMANDANDMBITFCMPMLDMACORORMRPTRPTZSTSTMSUBXORXORM支持立即數(shù)的指令注意:在立即尋址的指令中,應(yīng)在數(shù)值或符號前面加一個“#”,表示是一個立即數(shù),以區(qū)別于地址。數(shù)據(jù)尋址7數(shù)據(jù)尋址圖5-1帶立即數(shù)的LD指令(b)雙字LD指令(a)單字LD指令8數(shù)據(jù)尋址◆絕對尋址,指令中包含的是尋找操作數(shù)的16位單元地址,可以用其所在單元的地址標(biāo)號或者16位符號常數(shù)來表示?!籼攸c:指令中包含一個固定的16位地址,能尋址所有數(shù)據(jù)存儲空間,但運行速度慢,需要較大的存儲空間?!粲猛荆河糜趯λ俣纫筝^低的場合?!艚^對尋址有四種類型:①數(shù)據(jù)存儲器地址(dmad)尋址;②程序存儲器地址(pmad)尋址;③端口(PA)尋址;④*(1k)尋址?!?.2.2絕對尋址9數(shù)據(jù)尋址1、數(shù)據(jù)存儲器地址(dmad)尋址◆用一個數(shù)或符號來確定數(shù)據(jù)空間的一個地址?!糁饕噶钣校?/p>
MVDKSmem,dmadMVDMdmad,MMRMVKDdmad,SmemMVMDMMR,dmad
例:MVKDEXAMPLE,*AR5數(shù)據(jù)存儲器的16位地址dmad值
1010h10數(shù)據(jù)尋址2、程序存儲器地址(pmad)尋址◆用一個數(shù)或符號來確定程序存儲器的一個地址。◆主要指令有:
FIRSXmem,Ymem,pmadMACDSmem,pmad,srcMACPSmem,pmad,srcMVDPSmem,pmadMVPDpmad,Smem
例:MVPDEXAMPLE,*AR5程序存儲器的16位地址pmad值
11數(shù)據(jù)尋址3、端口地址(PA)尋址用一個數(shù)或符號來確定I/O存儲空間中的一個地址,以實現(xiàn)對I/O設(shè)備的讀寫。主要指令有:
PORTRPA,SmemPORTWSmem,PA例:PORTRFIFO,*AR5I/O端口地址PA12數(shù)據(jù)尋址4、*(lk)尋址用一個數(shù)或符號來確定數(shù)據(jù)存儲器中的一個地址。允許所有使用單數(shù)據(jù)存儲器尋址的指令去訪問數(shù)據(jù)空間的任意單元,而不改變DP的值,也不用對AR進(jìn)行初始化。注意:
1)*(1k)尋址時,指令的長度擴展1個字。
2)*(1k)尋址的指令不能與循環(huán)指令(RPT,RPTZ)一起使用。例:LD*(EXAMPLE
),A13數(shù)據(jù)尋址將累加器的內(nèi)容作為地址去訪問程序存儲單元。
例如:
READASmem
;將累加器A所指定的程序存儲單元的內(nèi)容傳送到Smem指向的數(shù)據(jù)存儲單元中。
WRITASmem
;將Smem指定的數(shù)據(jù)存儲單元中的
數(shù)據(jù),寫入A所指定的程序存儲
單元。用途:用于程序存儲空間與數(shù)據(jù)存儲空間之間的數(shù)據(jù)傳輸。注意:①對大多數(shù)C54x,用累加器的低16位作為程序存儲器的地址,但是C548、C549、C5410和C5416有23根地址線,C5402有20根地址線,C5420有18根地址線,這些芯片的程序存儲器單元分別由累加器的低23位、低20位、低18位來確定。②上述兩條指令重復(fù)使用時,累加器A自動增減;③只能使用累加器A尋址程序空間。④
累加器A用來尋址程序空間。Smem用來尋址數(shù)據(jù)空間。§5.2.3累加器尋址14數(shù)據(jù)尋址利用數(shù)據(jù)頁指針DP和堆棧指針SP尋址。CPL=0時:DP的9位地址與指令中的7位地址連接起來,形成16位的數(shù)據(jù)存儲器存儲單元的地址。CPL=1時:SP的16位地址加指令中的7位地址,形成
16位的數(shù)據(jù)存儲器存儲單元的地址。基地址:存放在數(shù)據(jù)頁指針寄存器(DP)或者堆棧指針寄存器(SP)中;偏移量:由指令寄存器的7位最低有效位(LSB)提供。§5.2.4直接尋址15數(shù)據(jù)尋址直接尋址的特點:指令中只含有數(shù)據(jù)存儲器的低7位地址(偏移地址dmad);
16位數(shù)據(jù)存儲器地址由基地址和偏移地址共同構(gòu)成。直接尋址指令格式16數(shù)據(jù)尋址
地址形成過程:當(dāng)CPL=0時直接尋址指令15~876~0操作碼I=0dmad頁指針DP(位于ST0中)9位數(shù)據(jù)頁指針DP9位數(shù)據(jù)頁指針DP高9位dmad低7位16位數(shù)據(jù)存儲器地址17數(shù)據(jù)尋址當(dāng)CPL=1時直接尋址指令15~876~0操作碼I=0dmad高9位dmad低7位16位數(shù)據(jù)存儲器地址16位堆棧指針SP堆棧指針SPSP+dmad16位SP+dmad直接尋址標(biāo)識:①變量前加@,如@x;②在偏移量前加@,如@5。18數(shù)據(jù)尋址
例5-3:數(shù)據(jù)存儲器存儲數(shù)據(jù)如圖所示,采用數(shù)據(jù)頁指針DP直接尋址,完成x,y單元的兩個數(shù)據(jù)求和。RSBXCPL數(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ù)相加DPdmaLD#3,DPLD#3,DP000000011LD@x,ALD@x,A1111111操作碼01111111機器碼@x000000011111111101FF@x01FF1000A000000100001FF1000ADD@y,A操作碼00000000機器碼0000000@y00000001100000000180@y018000010180H0001+1001018000011001000000ADD@y,A0000001001A結(jié)果ADD@y,ALD@x,ALD#3,DPRSBXCPLADD@y,ALD#4,DPLD#4,DPRSBXCPLLD#3,DPDP000000011LD@x,Admad111111101FF@xA0000001000LD#4,DPDP000000100ADD@y,Adma00000000200@y05000200H05000200H+005100000000000015000000001500A結(jié)果注意:若一段代碼的所有直接尋址指令都訪問同一個數(shù)據(jù)頁,則只需在該代碼的最前面裝載一次DP值;如果要訪問不同的數(shù)據(jù)頁,則需要改變DP值。19數(shù)據(jù)尋址
例5-4:數(shù)據(jù)存儲器存儲數(shù)據(jù)如圖所示,利用堆棧指針SP直接尋址,求堆棧中距棧頂兩個數(shù)x,y的和。20數(shù)據(jù)尋址利用輔助寄存器(AR0~AR7)作為地址指針。輔助寄存器前面的符號*指示當(dāng)前AR,且使用間接尋址模式。1、單操作數(shù)間接尋址用來完成存儲單元中16位單數(shù)據(jù)的讀寫操作。共可以形成16種尋址方式?!?.2.5間接尋址21數(shù)據(jù)尋址單操作數(shù)間接尋址形式MOD域
操作句法功
能說
明0000*
ARx
地址=ARxARx的內(nèi)容為數(shù)據(jù)存儲器地址0001*
ARx-
地址=ARxARx=ARx-1
尋址結(jié)束后,ARx地址減1。[注1]
0010*
ARx+
地址=ARxARx=ARx+1
尋址結(jié)束后,ARx地址加1。
[注1]
0011*
+ARx
ARx=ARx+1
地址=ARx
ARx中的地址加1后,再尋址。
[注1]、[注2]、[注3]
0100*
ARx-0B
地址=ARxARx=B(ARx-AR0)
尋址結(jié)束后,ARx減去AR0的值并進(jìn)行位反轉(zhuǎn)。
[注1]:尋址16位字時增/減量為1,32位字時增/減量為2。[注2]:這種方式只能用寫操作指令。[注3]:這種方式不允許對存儲器映像寄存器尋址。
22數(shù)據(jù)尋址單操作數(shù)間接尋址形式MOD域
操作句法功
能說
明0101*
ARx-0
地址=ARxARx=ARx-AR0尋址結(jié)束后,
ARx減去AR0的值。0110
*
ARx+0
地址
=ARx
ARx=ARx+AR0
尋址結(jié)束后,ARx加上AR0的值。0111
*
ARx+0B
地址=ARxARx=B(ARx+AR0)尋址結(jié)束后,ARx加上AR0的值并進(jìn)行位反轉(zhuǎn)。
1000
*
ARx-%
地址=ARxARx=Circ(ARx-1)尋址結(jié)束后,ARx中的地址值按循環(huán)減的方法減1。[注1]
1001
*
ARx-0%
地址=ARx
ARx=Circ(ARx-AR0)
尋址結(jié)束后,按循環(huán)減的方法從ARx中減去AR0中的值
[注1]:尋址16位字時增/減量為1,32位字時增/減量為2。23數(shù)據(jù)尋址單操作數(shù)間接尋址形式MOD域
操作句法功
能說
明1010
*
ARx+%
地址=ARxARx=Circ(ARx+1)尋址結(jié)束后,ARx中的地址值按循環(huán)加的方法加1。[注1]
1011
*
ARx+0%
地址=ARxARx=Circ(ARx+AR0)尋址結(jié)束后,按循環(huán)加的方法將AR0中的值加到ARx。
1100
*
ARx(lk)
地址=ARx+lkARx=ARx以ARx與16位數(shù)之和作為地址,尋址結(jié)束后,ARx中的值不變。
1101
*+ARx(lk)
地址=ARx+lk
ARx=ARx+lk將一個16位帶符號數(shù)加到ARx,然后尋址。[注3]1110*
ARx(lk)%
地址=Circ(ARx+lk)
ARx=Circ(ARx+lk)將一個16位帶符號數(shù)按循環(huán)加的方法加至ARx,然后再尋址[注3]1111*
(lk)
地址=(lk)利用16位無符號數(shù)作為地址,尋址數(shù)據(jù)存儲器[注3][注3]:這種方式不允許對存儲器映像寄存器尋址。
24數(shù)據(jù)尋址特殊的間接尋址功能:1)循環(huán)尋址循環(huán)緩沖區(qū)是一個滑動窗口,包含著最近的數(shù)據(jù)。循環(huán)尋址用%表示
循環(huán)緩沖區(qū)的參數(shù)主要包括:長度寄存器(BK)、有效基地址(EFB)和尾地址(EOB)BK定義了循環(huán)緩沖區(qū)的大小R。要求緩沖區(qū)地址始于最低N位為零的地址,且R值滿足(2^n)>R,R值必須要放入BK。緩沖區(qū)的起始地址緩沖區(qū)的底部地址循環(huán)緩沖區(qū)的偏移量就是當(dāng)前ARx的低N位,步長就是一次加到輔助寄存器或從輔助寄存器中減去的值25數(shù)據(jù)尋址循環(huán)尋址的算法:If0偏移量+步長<
BK;偏移量=偏移量+步長;Else
if偏移量+步長
BK;偏移量=偏移量+步長-BK;Else
if偏移量+步長
<0;偏移量=偏移量+步長+BK;26例5-5下面的代碼完成循環(huán)尋址功能,并將循環(huán)緩沖區(qū)內(nèi)相關(guān)單元的內(nèi)容加載到累加器B。STM#1000H,AR2STM#5,BKSTM#2,AR0ST#0,*AR2+ST#1,*AR2+ST#2,*AR2+ST#3,*AR2+ST#4,*AR2+;將0-4依次放到數(shù)據(jù)單元1000H-1004H中。STM#1000H,AR2;循環(huán)緩沖區(qū)為1000H-1004H。LD*AR2+0%,B;B=(1000H)=0。LD*AR2+0%,B;B=(1002H)=2。LD*AR2+%,B;B=(1004H)=4。LD*+AR2(3)%,B;B=(1003H)=3。LD*+AR2(3)%,B;B=(1001H)=1。數(shù)據(jù)尋址27數(shù)據(jù)尋址注意:①循環(huán)緩沖區(qū)的長度R小于2^N,且地址從一個低N
位為0的地址開始。②步長小于或等于緩沖區(qū)的長度;③所使用的輔助寄存器必須指向緩沖區(qū)單元。28數(shù)據(jù)尋址2)位反轉(zhuǎn)尋址反轉(zhuǎn)尋址將AR0加到輔助寄存器中,地址以位反轉(zhuǎn)方式產(chǎn)生。也就是說,兩者相加時,進(jìn)位是從左向右反向傳播的,而不是通常加法中的從右向左。例5-6:假設(shè)輔助寄存器為8位,AR2值為01100000b,AR0的值為0000l000b,下面例子給出了位反轉(zhuǎn)尋址中AR2值修改的順序和修改后AR2的值。*AR2+0B;AR2=01100000(第0次的值)*AR2+0B;AR2=01101000(第1次的值)*AR2+0B;AR2=01100100(第2次的值)*AR2+0B;AR2=01101100(第3次的值)*AR2+0B;AR2=01100010(第4次的值)*AR2+0B;AR2=01101010(第5次的值)*AR2+0B;AR2=01100110(第6次的值)*AR2+0B;AR2=01101110(第7次的值)29位反轉(zhuǎn)尋址存儲單元地址變換結(jié)果位碼倒序?qū)ぶ肺淮a倒序?qū)ぶ方Y(jié)果0000X(0)0000X(0)0001X(8)1000X(1)0010X(4)0100X(2)0011X(12)1100X(3)0100X(2)0010X(4)0101X(10)1010X(5)0110X(6)0110X(6)0111X(14)1110X(7)1000X(1)0001X(8)1001X(9)1001X(9)1010X(5)0101X(10)1011X(13)1101X(11)1100X(3)0011X(12)1101X(11)1011X(13)1110X(7)0111X(14)1111X(15)1111X(15)數(shù)據(jù)尋址30數(shù)據(jù)尋址2、雙操作數(shù)間接尋址
雙操作數(shù)尋址用于完成兩個讀操作或者一個讀并行一個寫的操作。采用這種方式的指令代碼都為1個字長并且只能以間接尋址方式工作。雙操作數(shù)間接尋址指令格式31數(shù)據(jù)尋址雙操作數(shù)尋址Xmod或Ymod操作碼功能說明00*ARx地址=ARxARx中的內(nèi)容是數(shù)據(jù)存儲器地址01*ARx-地址=ARxARx=ARx-1尋址后,ARx的地址減110*ARx+地址=ARxARx=ARx+1尋址后,ARx的地址加111*ARx+0%地址=ARxARx=circ(ARx+AR0)尋址后,AR0以循環(huán)尋址方式加到ARx中去32輔助寄存器使用規(guī)則Xar或Yar輔助寄存器00AR201AR310AR411AR5數(shù)據(jù)尋址33數(shù)據(jù)尋址例5-7:MAC*AR5+,*AR4+,A,B指令格式為:MACXmem,Ymem,src[,dst]指令功能為:dst=src+Xmem*Ymem,T=Xmem由表5-4和表5-5可知:Xmod=Ymod=10B,Xar=11B,Yar=10B 指令執(zhí)行前 指令執(zhí)行后累加器A: 0000000010H; 累加器A:0000000012H;T: 0000H T:0001HAR4: 2000H AR4:2001HAR5: 1000H AR5:1001H數(shù)據(jù)存儲器: 數(shù)據(jù)存儲器:1000H:0001H; 1000H:0001H2000H:0002H; 2000H:0002H34數(shù)據(jù)尋址§5.2.6存儲器映像寄存器尋址1.采用直接尋址方式2.采用間接尋址方式高9位數(shù)據(jù)存儲器地址置0,利用指令中的低7位地址直接訪問MMR。高9位數(shù)據(jù)存儲器地址置0,按照當(dāng)前輔助寄存器ARx的低7位地址訪問MMR。3、MMR尋址特點:①尋址速度快,對MMR執(zhí)行寫操作開銷小;②可直接利用MMR的名稱快速訪問數(shù)據(jù)存儲空間0頁資源;③只能尋址數(shù)據(jù)空間的0頁單元。4、用途:不改變DP、SP的情況下,修改MMR中的內(nèi)容。35數(shù)據(jù)尋址C54x共有8條指令可以進(jìn)行MMR尋址。
LDMMMR,dst
;將MMR加載到累加器
MVDMdmad,MMR;數(shù)據(jù)存儲器向MMR傳送數(shù)據(jù)
MVMDMMR,dmad;MMR向指定地址傳送數(shù)據(jù)
MVMMMMRx,MMRy;MMRx向MMRy傳送數(shù)據(jù)
POPMMMR;將數(shù)據(jù)從棧頂彈至MMRPSHMMMR;將MMR數(shù)據(jù)壓入堆棧
STLMsrc,MMR;累加器低位存入MMRSTM#lk,MMR;長立即數(shù)lk存入MMR36數(shù)據(jù)尋址堆棧:當(dāng)發(fā)生中斷或子程序調(diào)用時,用來自動保存PC
內(nèi)容以及保護現(xiàn)場或傳送參數(shù)。C54x的堆棧是向低地址生長,并由16位堆棧指針SP管理。SP總是指向棧頂。堆棧尋址:利用SP指針,按照先進(jìn)后出的原則進(jìn)行尋址。進(jìn)棧操作時,SP先減小,然后數(shù)據(jù)進(jìn)入堆棧;出棧操作時,數(shù)據(jù)先出棧,然后SP增加?!?.2.7堆棧尋址37數(shù)據(jù)尋址
進(jìn)棧操作時,SP先減小,然后數(shù)據(jù)進(jìn)入堆棧;
數(shù)據(jù)存儲器03FFH1234SP567813FFsmem①
SPSP-1,使SP指向03FEH;SP03FEH②
數(shù)據(jù)進(jìn)棧,SP=03FEH。13FFSP
出棧操作時,數(shù)據(jù)先出棧,然后SP增加。
XXXXsmem①
SP=03FEH,數(shù)據(jù)出棧;SP13FF②
SPSP+1,使SP指向03FFH。SP38數(shù)據(jù)尋址有5條指令采用堆棧尋址方式:1、PSHD將數(shù)據(jù)存儲器中的一個數(shù)壓入堆棧。2、PSHM將一個MMR中的值壓入堆棧。3、POPD從堆棧彈出一個數(shù)至數(shù)據(jù)存儲單元。4、POPM從堆棧彈出一個數(shù)至MMR。5、FRAMEoffset遞增遞減堆棧指針而不影響堆棧內(nèi)容。39數(shù)據(jù)尋址例5-8:堆棧尋址例題。0080PSHD*AR20081PSHMAR00082CALLsubr0084POPMAR00085POPD*AR20086FRAME-20087subrLD#2,DP0088ST#1234H100h0089RETAR2指向包含1234H的存儲器位置,AR0的內(nèi)容為0100H。40尋址方式特點用途立即尋址操作數(shù)直接包含在指令中,沒有尋找數(shù)據(jù)地址的過程,但需占用程序存儲空間,且數(shù)值不能改變常數(shù)或?qū)拇嫫鞒跏蓟^對尋址能尋址所有數(shù)據(jù)存儲空間,但運行速度慢,需要較大的存儲空間用于對速度要求低的場合累加器尋址累加器的內(nèi)容作為地址去訪問程序存儲單元完成程序存儲空間與數(shù)據(jù)存儲空間之間的數(shù)據(jù)傳輸直接尋址指令中包含低7為地址,與DP或SP形成16位地址,可單周期尋址1個數(shù)據(jù)頁(128字)尋址速度快,用于對速度要求高的場合間接尋址利用輔助寄存器作為地址指針進(jìn)行尋址,并可自動增、減、變址和循環(huán)尋址用于需按固定步長步進(jìn)尋址的場合MMR尋址基地址為0的直接尋址直接利用MMR名字快速訪問堆棧尋址用堆棧指針按先進(jìn)后出原則尋址數(shù)據(jù)存至堆?;驈钠鋸棾鰯?shù)據(jù)尋址41程序?qū)ぶ贰?.3程序?qū)ぶ稰C程序計數(shù)器塊重復(fù)寄存器組RC重復(fù)寄存器BRC塊重復(fù)寄存器RSA塊重復(fù)起始地址寄存器REA塊重復(fù)結(jié)束地址寄存器程序地址生成器的組成42程序?qū)ぶ贰?.3.1程序計數(shù)器操作加載到PC的地址復(fù)位PC=FF80h順序執(zhí)行指令PC=PC+1分支轉(zhuǎn)移用緊跟在分支轉(zhuǎn)移指令后面的16位立即數(shù)加載PC由累加器分支轉(zhuǎn)移用累加器A或B的低16位立即數(shù)加載PC塊重復(fù)循環(huán)假如ST1中的塊重復(fù)有效位BRAF=1,當(dāng)PC+1等于塊重復(fù)結(jié)束地址(REA)+1時,將塊重復(fù)起始地址(RSA)加載PC子程序調(diào)用將返回地址壓入堆棧,并用緊跟在調(diào)用指令后面的16位立即數(shù)加載PC。返回指令將返回地址從棧頂彈出至PC,回到原先的程序處繼續(xù)執(zhí)行。從累加器調(diào)用子程序?qū)C+1壓入椎棧,用累加器A或B的低16位加載PC。返回指令將棧頂彈出至PC,回到原先的程序處繼續(xù)執(zhí)行。硬件中斷或軟件中斷將PC壓入堆棧,用適當(dāng)?shù)闹袛嘞蛄康刂芳虞dPC。中斷返回時,將棧頂彈出至PC,繼續(xù)執(zhí)行被中斷了的子程序。43§5.3.2擴展程序計數(shù)器操作加載到XPC的地址復(fù)位XPC=0順序執(zhí)行指令XPC保持不變長轉(zhuǎn)移長立即數(shù)的16-22位加載XPC由累加器長轉(zhuǎn)移累加器的16-22位加載XPC子程序長調(diào)用XPC壓入棧頂,指令中立即數(shù)的16-22位加載XPC從累加器長調(diào)用子程序XPC壓入棧頂,調(diào)用累加器的16-22位加載XPC長返回棧頂彈出并加載XPC程序?qū)ぶ?4功能:可執(zhí)行分支轉(zhuǎn)移、循環(huán)控制、子程序操作。方法:通過分支轉(zhuǎn)移指令改寫PC,可以改變程序的流向。指令:B[D]、BACC[D]、BC[D]、BANZ[D]當(dāng)調(diào)用子程序或函數(shù)時,DSP就會中斷原先的程序,轉(zhuǎn)移到程序存儲器的其他地址繼續(xù)運行。調(diào)用時,下條指令的地址被壓入堆棧,以便返回時將這個地址彈出至PC,使中斷的程序繼續(xù)執(zhí)行。指令:CALL[D]、CALA[D]、RET[D]、RETE[D]RETF[D]、CC[D]、RC[D]程序?qū)ぶ贰?.3.3分支轉(zhuǎn)移§5.3.4調(diào)用與返回45程序?qū)ぶ贰?.3.5條件操作包括程序控制指令和存儲指令在內(nèi)的一些C54x指令,只有當(dāng)一個條件或多個條件得到滿足時才能執(zhí)行。此時,程序執(zhí)行的方向會隨著條件是否滿足而發(fā)生改變。1、重復(fù)執(zhí)行單條指令
功能:重復(fù)執(zhí)行下一條指令重復(fù)執(zhí)行的次數(shù)等于(RC)+l。
RC中的內(nèi)容,不能編程設(shè)置,只能由重復(fù)指令中的操作數(shù)加載。操作數(shù)n的最大值為65535。一旦重復(fù)指令被取指、譯碼,直到重復(fù)循環(huán)完成以前,對所有的中斷(包括,但不包括)均不響應(yīng)?!?.3.6重復(fù)操作462、程序塊重復(fù)操作功能:將重復(fù)操作的范圍擴大到任意長度的循環(huán)回路。C54x內(nèi)部的塊重復(fù)計數(shù)器(BRC)、塊重復(fù)起始地址寄存器(RSA)、塊重復(fù)結(jié)束地址寄存器(REA)與程序塊重復(fù)指令RPTB一道,對緊隨RPTB、由若干條指令構(gòu)成的程序塊進(jìn)行重復(fù)操作。程序?qū)ぶ?7程序?qū)ぶ贰?.3.7復(fù)位操作
將處理器PMST中的中斷向量指針I(yè)PTR置成1FFh。將處理器PMST中的MP/MC位置成與引腳MP/MC相同的數(shù)值。
RS被拉高。將PC置成FF80h。擴展的程序計數(shù)器XPC寄存器清0。無論MP/MC狀態(tài)如何,將FF80h加到地址總線。數(shù)據(jù)總線變成高阻狀態(tài)??刂凭€均處于無效狀態(tài)。產(chǎn)生IACK信號。
ST1中的中斷方式位INTM置1,關(guān)閉所有的可屏蔽中斷。中斷標(biāo)志寄存器IFR清0。48將單循環(huán)計數(shù)器(RC)清零。產(chǎn)生同步復(fù)位信號(SRESET),對外圍電路初始化。將下列狀態(tài)位置成初始值:
ARP=0CLKOFF=0HM=0SXM=lASM=0CMPT=0INTM=1TC=1AVIS=0CPL=0OVA=0XF=1BRAF=0DP=0OVB=0C=1DROM=0OVLY=0C16=0FRCT=0OVM=0注意:復(fù)位期間對其
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年地震波傳播模擬軟件企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 聲學(xué)基礎(chǔ)與音響設(shè)備設(shè)計考核試卷
- 2025-2030年數(shù)字化酒店管理系統(tǒng)企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 2025-2030年手術(shù)室廢物處理設(shè)備行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 城際鐵路旅客運輸與鄉(xiāng)村振興戰(zhàn)略考核試卷
- 勘探設(shè)備在石墨礦勘查中的高效提取技術(shù)考核試卷
- 中層大氣化學(xué)-氣候模式MACO-ECNU的研發(fā)及其應(yīng)用研究
- 土家族“舍巴日”舞臺化創(chuàng)作實踐
- 積極心理學(xué)理念輔助少兒拉丁舞教學(xué)的應(yīng)用研究
- 小麥Q(jìng)基因優(yōu)異等位變異Qc1-Q1的產(chǎn)量和品質(zhì)效應(yīng)及育種價值評價
- 極簡統(tǒng)計學(xué)(中文版)
- 產(chǎn)品生產(chǎn)及供貨方案(2篇)
- 當(dāng)代世界經(jīng)濟與政治 第八版 課件 第六章 轉(zhuǎn)型國家的經(jīng)濟與政治
- 2024年長沙衛(wèi)生職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫參考答案
- 2024年資格考試-對外漢語教師資格證筆試參考題庫含答案
- 2024年4月自考02382管理信息系統(tǒng)答案及評分參考
- 新物業(yè)項目設(shè)備檢查標(biāo)準(zhǔn)【物業(yè)管理經(jīng)驗分享】
- 金屬硬度轉(zhuǎn)換表【HLD,HRC,HRB,HV,HB,HSD】
- GB/T 22076-2024氣動圓柱形快換接頭
- (蘇版)初三化學(xué)上冊:第2單元課題1空氣
- 2023年12月廣東珠海市軌道交通局公開招聘工作人員1人筆試近6年高頻考題難、易錯點薈萃答案帶詳解附后
評論
0/150
提交評論