DSP器件及其應用-DSP的指令系統(tǒng)_第1頁
DSP器件及其應用-DSP的指令系統(tǒng)_第2頁
DSP器件及其應用-DSP的指令系統(tǒng)_第3頁
DSP器件及其應用-DSP的指令系統(tǒng)_第4頁
DSP器件及其應用-DSP的指令系統(tǒng)_第5頁
已閱讀5頁,還剩133頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 TMS320C54xTMS320C54x的指令系統(tǒng)的指令系統(tǒng)IntroductionnTMS320C54x的尋址方式的尋址方式nTMS320C54x指令的表示方法指令的表示方法 nTMS320C54x的指令系統(tǒng)的指令系統(tǒng) TMS320C54x的尋址方式的尋址方式 n立即尋址:指令中有一個固定的立即數(shù);立即尋址:指令中有一個固定的立即數(shù);n絕對地址尋址:指令中有一個固定的地址(絕對地址尋址:指令中有一個固定的地址(16位);位);n累加器尋址:按累加器的內(nèi)容作為地址去訪問程序存累加器尋址:按累加器的內(nèi)容作為地址去訪問程序存儲器中的一個單元;儲器中的一個單元;n直接尋址:指令編碼中含有的直接尋址

2、:指令編碼中含有的7位地址與位地址與DP或或SP一一起合成數(shù)據(jù)存儲器中操作數(shù)的實際地址;起合成數(shù)據(jù)存儲器中操作數(shù)的實際地址;n間接尋址:通過輔助寄存器尋址;間接尋址:通過輔助寄存器尋址;n存儲器映射寄存器尋址:修改存儲器映射寄存器中的存儲器映射寄存器尋址:修改存儲器映射寄存器中的值,而不影響當前數(shù)據(jù)頁面指針值,而不影響當前數(shù)據(jù)頁面指針DP和當前堆棧指針和當前堆棧指針SP的值;的值;n堆棧尋址:把數(shù)據(jù)壓入或彈出系統(tǒng)堆棧。堆棧尋址:把數(shù)據(jù)壓入或彈出系統(tǒng)堆棧。尋址方式尋址方式用用 途途舉舉 例例指令含義指令含義立即尋址立即尋址主要用于初始化主要用于初始化LD #10,A立即數(shù)立即數(shù)10 A絕對尋址絕

3、對尋址利用利用16位地址尋址存儲單位地址尋址存儲單元元STL A,*(y)將將AL內(nèi)容存入內(nèi)容存入y所在的存儲單所在的存儲單元元累加器尋址累加器尋址將累加器中的內(nèi)容作為地將累加器中的內(nèi)容作為地址址READA x將將A的內(nèi)容作為地址讀程序存的內(nèi)容作為地址讀程序存儲器,并存入儲器,并存入x存儲單元存儲單元直接尋址直接尋址利用數(shù)據(jù)頁指針和堆棧指利用數(shù)據(jù)頁指針和堆棧指針尋址針尋址LD x,A(DP+x的低的低7位地址位地址) A間接尋址間接尋址利用輔助寄存器作為地址利用輔助寄存器作為地址指針指針LD *AR1,A(AR1) A存儲器映像存儲器映像寄存器尋址寄存器尋址快速尋址存儲器映象寄存快速尋址存儲器

4、映象寄存器器LDM ST1,B(ST1) B堆棧尋址堆棧尋址壓入壓入/彈出數(shù)據(jù)存儲器和彈出數(shù)據(jù)存儲器和存儲器映像寄存器存儲器映像寄存器MMRPSHM AG(SP)-1 SP,(AG) (SP)符號符號含含 義義SmemSmem1616位單尋址操作數(shù)位單尋址操作數(shù)XmemXmem1616位的雙尋址操作數(shù),從位的雙尋址操作數(shù),從DBDB總線讀出總線讀出YmemYmem1616位的雙尋址操作數(shù),從位的雙尋址操作數(shù),從CBCB總線讀出總線讀出dmaddmad1616位立即數(shù),數(shù)據(jù)存儲器的地址位立即數(shù),數(shù)據(jù)存儲器的地址pmadpmad1616位立即數(shù),程序存儲器的地址位立即數(shù),程序存儲器的地址PAPA1

5、616位立即數(shù),位立即數(shù),I/OI/O的地址的地址srcsrc源累加器源累加器dstdst目的累加器目的累加器lklk1616位的長立即數(shù)位的長立即數(shù)尋址指令中用到的縮寫符號及其含義尋址指令中用到的縮寫符號及其含義立即尋址立即尋址v短立即數(shù)尋址(單字指令)短立即數(shù)尋址(單字指令)在指令字中包括立即操作數(shù)在指令字中包括立即操作數(shù) RPT #99 ;將下一條指令循環(huán);將下一條指令循環(huán)100次次LD #0h,DP ;將;將0裝入數(shù)據(jù)頁指針裝入數(shù)據(jù)頁指針ADD #0ffh,A ;將;將0ffh加給加給AccA立即尋址立即尋址v長立即數(shù)尋址長立即數(shù)尋址指令字的后一個字是立即數(shù)(雙字指令字的后一個字是立即

6、數(shù)(雙字指令)指令)ADD #1234h,A ;將;將#1234h加給加給 AccA絕對地址尋址絕對地址尋址v數(shù)據(jù)存儲器地址(數(shù)據(jù)存儲器地址(dmad)尋址:)尋址: 用一個符號或一個數(shù)來確定數(shù)據(jù)空間中的一個地址用一個符號或一個數(shù)來確定數(shù)據(jù)空間中的一個地址例:例:MVKD sample,*AR5 ;sample所代表的就是一個所代表的就是一個dmadMVKD 1000h,*AR5;將數(shù)據(jù)存儲器將數(shù)據(jù)存儲器1000h單元的數(shù)據(jù)傳送到由單元的數(shù)據(jù)傳送到由AR5所指的所指的存儲單元中存儲單元中 。 1000h代表的是一個代表的是一個dmad絕對地址尋址絕對地址尋址v程序存儲器地址(程序存儲器地址(p

7、mad)尋址)尋址: 用一個符號或一個數(shù)來確定程序地址空間用一個符號或一個數(shù)來確定程序地址空間中的一個地址中的一個地址例:例:MVPD table,*AR5 table 所代表的就是一個所代表的就是一個pmad絕對地址尋址絕對地址尋址v端口地址端口地址(PA)尋址尋址用一個符號或常數(shù)來確定用一個符號或常數(shù)來確定I/O口地址口地址 PORTR PA, Smem ;從;從PA單元端口讀入一單元端口讀入一 個數(shù)據(jù),傳送到個數(shù)據(jù),傳送到Smem所指的數(shù)據(jù)單元中去所指的數(shù)據(jù)單元中去 PORTW Smem, PA ;從;從Smem所指的數(shù)據(jù)單所指的數(shù)據(jù)單 元取出一個數(shù)據(jù),傳送到元取出一個數(shù)據(jù),傳送到PA單

8、元端口單元端口PORTR FIFO, *AR5 ;把一個數(shù)從端口為;把一個數(shù)從端口為FIFO的的I/O口傳送到口傳送到AR5所指向的數(shù)據(jù)單元所指向的數(shù)據(jù)單元絕對地址尋址絕對地址尋址v*(lk)尋址尋址v用一個符號或一個表示用一個符號或一個表示16位地址的長立即數(shù)來位地址的長立即數(shù)來確定數(shù)據(jù)存儲器中的一個地址確定數(shù)據(jù)存儲器中的一個地址例:例: LD *(BUFFER),),A ;把地址為;把地址為BUFFER的數(shù)據(jù)的數(shù)據(jù)單元中的數(shù)據(jù)裝到單元中的數(shù)據(jù)裝到AccA中中LD Smem, dst試比較: LD 1000H, A ; 1000HA 雙字,立即 LD *(1000H),A; (1000H)

9、A 雙字,絕對 累加器尋址累加器尋址用累加器中的數(shù)作為一個地址,可用來對存放用累加器中的數(shù)作為一個地址,可用來對存放數(shù)據(jù)的程序存儲器尋址:數(shù)據(jù)的程序存儲器尋址:READA SmemWRITA SmemvREADA,把累加器,把累加器A所確定的程序存儲器單元所確定的程序存儲器單元中的一個字,傳送到數(shù)據(jù)存儲器單元中的一個字,傳送到數(shù)據(jù)存儲器單元Smem中。中。vWRITA,把數(shù)據(jù)單元,把數(shù)據(jù)單元Smem中的一個字,傳送中的一個字,傳送到累加器到累加器A確定的程序存儲器單元。確定的程序存儲器單元。直接尋址直接尋址vTMS320C54的數(shù)據(jù)存儲器分為的數(shù)據(jù)存儲器分為512頁,每頁頁,每頁128字。設置

10、一個數(shù)據(jù)頁指針字。設置一個數(shù)據(jù)頁指針DP(Data Pointer),用),用9-bit指向一個數(shù)據(jù)頁,再加上指向一個數(shù)據(jù)頁,再加上一個一個7-bit的頁內(nèi)偏移地址,形成的頁內(nèi)偏移地址,形成16-bit的數(shù)據(jù)的數(shù)據(jù)地址地址LD #4,DP ;指向頁;指向頁4(0200h-027Fh)ADD 9h,A ;將數(shù)據(jù)頁;將數(shù)據(jù)頁4中地址中地址9h的的 數(shù)據(jù)加給數(shù)據(jù)加給AccA直接尋址直接尋址間接尋址間接尋址v8個輔助寄存器(個輔助寄存器(AR0-AR7),由一個),由一個輔助寄存器指針(輔助寄存器指針(ARP 3-bit)來指定)來指定v輔助寄存器算術單元(輔助寄存器算術單元(ARAU)作)作16-b

11、it無符號數(shù)運算,決定一個新的地址,裝入無符號數(shù)運算,決定一個新的地址,裝入輔助寄存器中的一個輔助寄存器中的一個間接尋址間接尋址間接尋址間接尋址vAR0-AR7的內(nèi)容相當靈活,可以裝入立即數(shù),的內(nèi)容相當靈活,可以裝入立即數(shù),加上立即數(shù),減去立即數(shù);加上立即數(shù),減去立即數(shù);v例如: STM #0060h,AR1; AR1=0060Hv也可以從數(shù)據(jù)存儲器裝入地址;還可以作以下也可以從數(shù)據(jù)存儲器裝入地址;還可以作以下的變址尋址:的變址尋址:間接尋址間接尋址v將該將該AR的內(nèi)容加的內(nèi)容加1或減或減1,再尋,再尋址(循環(huán)常用)址(循環(huán)常用)v將該將該AR的內(nèi)容加上或減去的內(nèi)容加上或減去AR0的的內(nèi)容,再

12、尋址。內(nèi)容,再尋址。間接尋址間接尋址 ADD *AR2,8,A ;將當前輔助寄存器;將當前輔助寄存器所指的地址里的數(shù)據(jù),左移所指的地址里的數(shù)據(jù),左移8-bit后加給后加給AccAADD * AR2 +,8,A,AR4 ;數(shù)據(jù)左移加;數(shù)據(jù)左移加給給AccA后,當前輔助寄存器加后,當前輔助寄存器加1,選擇輔助,選擇輔助寄存器寄存器AR4ADD * AR2 +0,8,A ;執(zhí)行加法后,將;執(zhí)行加法后,將AR0的值加給當前輔助寄存器的值加給當前輔助寄存器 ADD * AR2 +,8,A ;將當前輔助寄存;將當前輔助寄存器所指的地址里的數(shù)據(jù),左移器所指的地址里的數(shù)據(jù),左移8-bit后加后加給給AccA,

13、當前輔助寄存器加當前輔助寄存器加1.存儲器映射寄存器存儲器映射寄存器(MMR)尋址尋址v存儲器映射寄存器尋址用來修改存儲器存儲器映射寄存器尋址用來修改存儲器映射寄存器。存儲器映射寄存器尋址既映射寄存器。存儲器映射寄存器尋址既可以在直接尋址中使用,又可以在間接可以在直接尋址中使用,又可以在間接尋址中使用。尋址中使用。vSTM #8888h,T ;存儲器映射寄存器尋址。存儲器映射寄存器尋址。T暫存器。暫存器。 nC54x共有共有8條指令可以進行條指令可以進行MMR尋址。尋址。存儲器映射寄存器存儲器映射寄存器(MMR)尋址尋址堆棧尋址堆棧尋址 系統(tǒng)堆棧用來在中斷和子程序期間自動存放程序計系統(tǒng)堆棧用來

14、在中斷和子程序期間自動存放程序計數(shù)器。它也能用來存放額外的數(shù)據(jù)項或傳遞數(shù)據(jù)值。數(shù)器。它也能用來存放額外的數(shù)據(jù)項或傳遞數(shù)據(jù)值。處理器使用一個處理器使用一個16-bit的存儲器映射寄存器的存儲器映射寄存器堆棧指針堆棧指針(SPSP)來對堆棧尋址,它總是指向存放在堆棧中的最)來對堆棧尋址,它總是指向存放在堆棧中的最后一個元素。在壓入堆棧操作時,后一個元素。在壓入堆棧操作時,SPSP先減先減1 1,然后將數(shù),然后將數(shù)據(jù)壓入堆棧;在彈出堆棧操作時,數(shù)據(jù)從堆棧中彈出據(jù)壓入堆棧;在彈出堆棧操作時,數(shù)據(jù)從堆棧中彈出后,后,SPSP再加再加1.1. PUSH ; PUSH ;把一個數(shù)據(jù)存儲器數(shù)據(jù)壓入堆棧把一個數(shù)

15、據(jù)存儲器數(shù)據(jù)壓入堆棧 POP ;POP ;從堆棧中彈出一個數(shù)據(jù)至數(shù)據(jù)存從堆棧中彈出一個數(shù)據(jù)至數(shù)據(jù)存 儲器單元儲器單元堆棧尋址堆棧尋址當進棧操作時,當進棧操作時,SPSP先減先減1,然后數(shù)據(jù)進入堆棧;,然后數(shù)據(jù)進入堆棧;當出棧操作時,數(shù)據(jù)先出棧,然后當出棧操作時,數(shù)據(jù)先出棧,然后SPSP加加1。00010010001101000101011000010010001101000101011000110011spsp操作前的堆棧和操作前的堆棧和SPSP00100010spsp操作后的堆棧和操作后的堆棧和SPSPX1X1X2圖、堆棧操作對堆棧指針的影響圖、堆棧操作對堆棧指針的影響堆棧尋址堆棧尋址 7種

16、尋址方式不同的用途 (1)立即尋址運行速度慢,但需要較多的程序存儲空間, 而且數(shù)值不能改變,主要用于表示常數(shù)和初始化。(2)絕對尋址可以訪問任何的數(shù)據(jù)空間,但速度慢,要求 較多的存儲空間,用于對速度沒有苛求的場合。(3)累加器尋址主要是在程序空間和數(shù)據(jù)空間傳送數(shù)據(jù)。(4)間接尋址類似于高級語言中的指針,較為靈活,主要 是針對數(shù)字信號處理的算法而設計的。 (5)直接尋址中尋址速度較快,用于時間要求較高的場合。 (6)MMR是基地址為零(不考慮SP、DP、CPL)的直接尋 址方式,尋址速度較快,可以直接快速訪問數(shù)據(jù)存儲器的 0頁資源。二、二、TMS320C54xTMS320C54x的指令表示方法的

17、指令表示方法 C54xC54x的助記符指令是由操作碼和操作數(shù)兩的助記符指令是由操作碼和操作數(shù)兩部分組成。在進行匯編以前,操作碼和操作數(shù)都是部分組成。在進行匯編以前,操作碼和操作數(shù)都是用助記符表示。用助記符表示。 操作碼操作碼源操作數(shù)源操作數(shù)目的操作數(shù)目的操作數(shù)注釋注釋指令系統(tǒng)中的符號指令系統(tǒng)中的符號 1.1.指令系統(tǒng)中的符號和縮略語指令系統(tǒng)中的符號和縮略語序號序號符符 號號含含 義義1A累加器累加器A2ALU算術邏輯運算單元算術邏輯運算單元3AR泛指通用輔助寄存器泛指通用輔助寄存器4ARx指定某一輔助寄存器指定某一輔助寄存器AR0AR75ARPST0中的中的3 3位輔助寄存器指針位輔助寄存器指

18、針6ASMST1中的中的5 5位累加器移位方式位位累加器移位方式位-16157B累加器累加器B8BRAFST1中的塊重復操作標志中的塊重復操作標志9BRC塊重復操作寄存器塊重復操作寄存器10BITC或或bit_code用于測試指令用于測試指令, ,指定數(shù)據(jù)存儲器單元中的哪指定數(shù)據(jù)存儲器單元中的哪一位被測試一位被測試, ,取指范圍取指范圍: :015指令系統(tǒng)中的符號指令系統(tǒng)中的符號 1.1.指令系統(tǒng)中的符號和縮略語指令系統(tǒng)中的符號和縮略語指令系統(tǒng)中的符號指令系統(tǒng)中的符號 1.1.指令系統(tǒng)中的符號和縮略語指令系統(tǒng)中的符號和縮略語指令系統(tǒng)中的符號指令系統(tǒng)中的符號 1.1.指令系統(tǒng)中的符號和縮略語指令

19、系統(tǒng)中的符號和縮略語指令系統(tǒng)中的符號指令系統(tǒng)中的符號 1.1.指令系統(tǒng)中的符號和縮略語指令系統(tǒng)中的符號和縮略語指令系統(tǒng)中的符號指令系統(tǒng)中的符號 1.1.指令系統(tǒng)中的符號和縮略語指令系統(tǒng)中的符號和縮略語指令系統(tǒng)中的符號指令系統(tǒng)中的符號 1.1.指令系統(tǒng)中的符號和縮略語指令系統(tǒng)中的符號和縮略語指令系統(tǒng)中的符號指令系統(tǒng)中的符號 1.1.指令系統(tǒng)中的符號和縮略語指令系統(tǒng)中的符號和縮略語2021年10月15日DSP原理及應用37 2 2. .指令系統(tǒng)中使用的記號指令系統(tǒng)中使用的記號指令系統(tǒng)中的符號指令系統(tǒng)中的符號 2021年10月15日DSP原理及應用383 3. .指令系統(tǒng)的運算符號指令系統(tǒng)的運算符號

20、指令系統(tǒng)中的符號指令系統(tǒng)中的符號 指令指令TMS320C54x的指令集有近兩百條指令,按功能的指令集有近兩百條指令,按功能分為如下幾類分為如下幾類:v算術運算指令算術運算指令v邏輯運算指令邏輯運算指令v程序控制指令程序控制指令v裝入和存儲指令裝入和存儲指令算術運算指令算術運算指令 加法指令加法指令 減法指令減法指令 乘法指令乘法指令 乘加指令乘加指令 乘減指令乘減指令 雙數(shù)雙數(shù)/ /雙精度指令雙精度指令 特殊操作指令特殊操作指令加法指令加法指令2021-10-1542C54x的加法指令共有13條,可完成兩個操作數(shù)的加法運算、移位后的加法運算、帶進位的加法運算和不帶符號位擴展的加法運算。操 作

21、碼: ADD、ADDC、ADDM、ADDS 源操作數(shù): Smem、Xmem、Ymem、#lk、src 移 位 數(shù): TS、16、SHIFT、SHFT、ASM 目的操作數(shù):src、dst、Smem 加法指令加法指令2021-10-1543nsrc-A 或BnXmem,Ymem數(shù)據(jù)存儲器操作數(shù),各種尋址方式Smem數(shù)據(jù)存儲器操作數(shù),可以使用絕對尋址、直接尋址、間接尋址等各種數(shù)據(jù)存儲器尋址方式。例如: ADD 1234H,A;(A)+(1234) A ADD *AR3,TS,A;(A)+(AR3) TS A ADD A,ASM,B;(A)asm+(B) B ADD 3456,8,B;(3456)8+

22、(B) B加法指令加法指令ADD *AR3+, AADD *AR3+,14,An將將AR3指向的地址單元指向的地址單元0100h的內(nèi)容的內(nèi)容1500h左移左移14位,位,得到得到5400000h加上加上1200h,將結果,將結果5401200h存在累存在累加器加器A中。中。ADDC *+AR2(5),An將將AR2加上加上5后指向的地址單元內(nèi)容,并進位后指向的地址單元內(nèi)容,并進位加到累加器加到累加器A中,此指令計算中,此指令計算0013h0004h1h0018h。ADDM 0123Bh,*AR4+減法指令減法指令*49DSP原理及應用 C54x共有共有1010條乘法運算指令,其運算結果都是條乘

23、法運算指令,其運算結果都是3232位的,存放在累加器位的,存放在累加器A A和和B B中中。而參與運算的乘數(shù)可而參與運算的乘數(shù)可以是以是T T、立即數(shù)、存儲器操作數(shù)和累加器、立即數(shù)、存儲器操作數(shù)和累加器A A的高的高1717位。位。格式:格式:操作碼操作碼 源操作數(shù)源操作數(shù)1 1 ,源操作數(shù)源操作數(shù)2 2 ,目的操作數(shù)目的操作數(shù)操操 作作 碼碼: MPY、MPYR、MPYA、MPYU、SQUR 源操作數(shù)源操作數(shù)1 1:Smem、Xmem、#lk 源操作數(shù)源操作數(shù)2 2:Ymem、#lk 目的操作數(shù):目的操作數(shù):dst 乘法指令乘法指令 乘法指令乘法指令序號序號指指 令令功功 能能說說 明明1M

24、PY MPY Smem Smem , , dstdstdstdst=T T* *SmemSmemT寄存器與操作數(shù)相乘寄存器與操作數(shù)相乘2MPYR MPYR Smem Smem , , dstdstdstdst=rnd(T T* *SmemSmem) )T寄存器與操作數(shù)帶舍入相乘寄存器與操作數(shù)帶舍入相乘3MPY MPY Xmem Xmem , ,Ymem Ymem , ,dstdst dstdst= XmemXmem * *Ymem,T=XmemYmem,T=Xmem兩操作數(shù)相乘兩操作數(shù)相乘4MPY MPY Smem Smem ,#,#lk ,dst,dstdstdst= SmemSmem *

25、*#lk ,T=Smem,T=Smem長立即數(shù)與操作數(shù)相乘長立即數(shù)與操作數(shù)相乘5MPY #MPY #lk ,dst,dstdstdst= T T* *#lk長立即數(shù)與長立即數(shù)與T寄存器相乘寄存器相乘6MPYAMPYA dst dstdstdst=T T* *A A(32-16)(32-16)T寄存器與累加器寄存器與累加器A高位相乘高位相乘7MPYA MPYA SmemSmemB B= SmemSmem* *A A(32-16)(32-16),T=Smem,T=Smem操作數(shù)與累加器操作數(shù)與累加器A高位相乘高位相乘8MPYU MPYU Smem Smem , , dstdstdstdst=uns

26、(T T) )* *uns(uns(SmemSmem) )無符號數(shù)相乘無符號數(shù)相乘9SQUR SQUR Smem Smem , , dstdstdstdst= SmemSmem * *Smem ,T=SmemSmem ,T=Smem操作數(shù)的平方操作數(shù)的平方10SQUR SQUR A A , , dstdstdstdst=A A(32-16)(32-16)* *A A(32-16)(32-16)累加器累加器A高位的平方高位的平方n累加器乘(MPYA)n例 MPYA *AR2n 執(zhí)行前 執(zhí)行后B=5678H*8765HT=5678H乘法指令乘法指令52 MPY 13, A ;將將T寄存器與寄存器與

27、040Dh指向的數(shù)據(jù)存儲單元指向的數(shù)據(jù)存儲單元的值相乘的積左移的值相乘的積左移1位后存入位后存入A中(中(FRCT=1,乘法器輸,乘法器輸出自動左移出自動左移1位)位)乘法指令乘法指令乘加和乘減指令乘加和乘減指令MAC *AR5+,AMAC #345h,A,BnB=A+T*#345hMAC *AR5+,*AR6+,A,B B=A+(*AR5)*(*AR6) T=(*AR5)MACR *AR5+,A A=rnd(A+T*(*AR5)MACR *AR5+,*AR6+,A,B B=rnd(A+(*AR5)*(*AR6) T=(*AR5)MACA *AR5+ B=B+(*AR5)*A(3116) T=

28、(*AR5) AR5=AR5+1邏輯運算指令邏輯運算指令AND *AR3+,A A=A&(*AR3) AR3=AR3+1ANDM #00FFh,*AR4+n(*AR4)=(*AR4)&(#00FF)nAR4=AR4+1移位指令移位指令移位指令移位指令ROL AROLTC AROR A測試指令測試指令BIT *AR5+,15-12 指令中的(指令中的(1512)表示測試第)表示測試第12位位 TC=(*AR5)(15-12) AR5=AR5+1BITF 5,#00FFhn測試測試Smem中指定的某些位,中指定的某些位,lk常數(shù)在測試一位或多常數(shù)在測試一位或多位時起屏蔽作用。假如指定的一位或多位為

29、位時起屏蔽作用。假如指定的一位或多位為0,狀態(tài)寄,狀態(tài)寄存器存器ST0的的TC位清位清0,否則該位置,否則該位置1。BITT *AR70CMPM *AR4+,0404hn比較比較16位單數(shù)據(jù)存儲器操作數(shù)位單數(shù)據(jù)存儲器操作數(shù)Smem和和16位常數(shù)位常數(shù)lk是是否相等。若相等,否相等。若相等,ST0寄存器的寄存器的TC位置位置1,否則該位,否則該位清清0。CMPR 2,AR4n 測試測試AR4是否大于是否大于AR0程序控制指令程序控制指令v分支指令分支指令 v調(diào)用指令調(diào)用指令v中斷指令中斷指令v返回指令返回指令v循環(huán)指令循環(huán)指令v堆棧操作指令堆棧操作指令v混合程序控制指令混合程序控制指令分支轉(zhuǎn)移指

30、令分支轉(zhuǎn)移指令BD1000hn程序指針指向指定的程序存儲器地址(程序指針指向指定的程序存儲器地址(pmad),該地),該地址可以是符號或一個數(shù)字。指令帶有后綴址可以是符號或一個數(shù)字。指令帶有后綴D是延遲轉(zhuǎn)是延遲轉(zhuǎn)移。移。BACC An程序指針指向程序指針指向src的低的低16位所確定的地址。位所確定的地址。 BANZ 2000h,*AR3BC 2000h,AGT指令的條件代碼所對應的條件指令的條件代碼所對應的條件 條件條件 說明說明 條件條件 說明說明 AEQ A=0 ANEQ A0 ALT A0 ALEQ A0 AGEQ A0 AOV AOV=0 ANOV AOV=1 C C=1 NC C=

31、0 TC TC=1 NTC TC=0調(diào)用指令調(diào)用指令CALA An程序指針轉(zhuǎn)移到程序指針轉(zhuǎn)移到src的低位所確定的地址單元,返回地的低位所確定的地址單元,返回地址壓入棧頂。址壓入棧頂。 CALLD 1000hCC 2222h,AGTFCALA A中斷指令中斷指令INTR 3TRAP l0h返回指令返回指令FRETFRETERC ANOVRET循環(huán)指令循環(huán)指令RPT #127n該指令實現(xiàn)對下一條指令的自動循環(huán)執(zhí)行。在循環(huán)執(zhí)該指令實現(xiàn)對下一條指令的自動循環(huán)執(zhí)行。在循環(huán)執(zhí)行期間,所有外部的中斷都不會響應,如果有較長時行期間,所有外部的中斷都不會響應,如果有較長時間的循環(huán),一定保證循環(huán)期間沒有中斷產(chǎn)生

32、。間的循環(huán),一定保證循環(huán)期間沒有中斷產(chǎn)生。RPTZ A,#1023n對目的累加器對目的累加器dst清清0,并且循環(huán)執(zhí)行下一條指,并且循環(huán)執(zhí)行下一條指令令n+1次。次。堆棧操作指令堆棧操作指令FRAME 10hn把一個短立即數(shù)把一個短立即數(shù)K加到堆棧指針加到堆棧指針SP中。中。POPD 10n把由堆棧指針把由堆棧指針SP尋址的數(shù)據(jù)存儲器單元的內(nèi)容轉(zhuǎn)移到尋址的數(shù)據(jù)存儲器單元的內(nèi)容轉(zhuǎn)移到由由Smem確定的數(shù)據(jù)存儲器單元中,然后堆棧指針確定的數(shù)據(jù)存儲器單元中,然后堆棧指針SP執(zhí)行加執(zhí)行加1操作。操作。POPM AR5n把由堆棧指針把由堆棧指針SP尋址的數(shù)據(jù)存儲器單元的內(nèi)容轉(zhuǎn)移到尋址的數(shù)據(jù)存儲器單元的內(nèi)

33、容轉(zhuǎn)移到指定的存儲器映射寄存器指定的存儲器映射寄存器MMR中,然后堆棧指針中,然后堆棧指針SP執(zhí)行加執(zhí)行加1操作。操作。PSHD *AR3+nSP減減1后將數(shù)據(jù)壓入堆棧。后將數(shù)據(jù)壓入堆棧。PSHM BRCnBRC:存儲器映射的塊循環(huán)計數(shù)器。:存儲器映射的塊循環(huán)計數(shù)器。nSP減減1后,將后,將MMR壓入堆棧。壓入堆棧。程序控制指令程序控制指令IDLE Kn1K3,執(zhí)行,執(zhí)行(PC)+1 PCn狀態(tài)位受狀態(tài)位受INTM位的影響位的影響n強迫程序執(zhí)行等待操作直至不可屏蔽中斷產(chǎn)生或復位強迫程序執(zhí)行等待操作直至不可屏蔽中斷產(chǎn)生或復位中斷產(chǎn)生。芯片保持空閑狀態(tài)(低功耗方式)。不論中斷產(chǎn)生。芯片保持空閑狀態(tài)

34、(低功耗方式)。不論INTM如何設置,只要有一個不可屏蔽中斷出現(xiàn),系統(tǒng)如何設置,只要有一個不可屏蔽中斷出現(xiàn),系統(tǒng)就退出空閑狀態(tài),如果就退出空閑狀態(tài),如果INTM=1,程序繼續(xù)執(zhí)行緊接著,程序繼續(xù)執(zhí)行緊接著IDLE的指令,不會響應中斷;如果的指令,不會響應中斷;如果INTM=,程序轉(zhuǎn),程序轉(zhuǎn)移到相應的中斷服務程序。移到相應的中斷服務程序。IDLE KnK的值決定了可以使芯片從空閑狀態(tài)中激活的中斷類的值決定了可以使芯片從空閑狀態(tài)中激活的中斷類型:型:nK=1定時器和串口等外圍設備在空閑狀態(tài)時仍有效,定時器和串口等外圍設備在空閑狀態(tài)時仍有效,此時定時器和串口仍然有輸出時鐘信號。外圍中斷和此時定時器和

35、串口仍然有輸出時鐘信號。外圍中斷和復位以及外部中斷可以激活芯片。復位以及外部中斷可以激活芯片。nK=2定時器和串口中等外圍設備在空閑狀態(tài)時無效,定時器和串口中等外圍設備在空閑狀態(tài)時無效,此時定時器和串口沒有輸出時鐘信號。復位和外部中此時定時器和串口沒有輸出時鐘信號。復位和外部中斷可以激活芯片。斷可以激活芯片。nK=3定時器和串口等外圍設備在空閑狀態(tài)時無效,鎖定時器和串口等外圍設備在空閑狀態(tài)時無效,鎖相環(huán)相環(huán)PLL被禁止,此時芯片將徹底進入空閑狀態(tài)。被禁止,此時芯片將徹底進入空閑狀態(tài)。MAR *AR3+n修改由修改由Smem所確定的輔助寄存器的內(nèi)容。在兼容方所確定的輔助寄存器的內(nèi)容。在兼容方式下

36、式下(CMPT=1),并且,并且ARxAR0,指令會修改,指令會修改ARx的的內(nèi)容以及輔助寄存器指針(內(nèi)容以及輔助寄存器指針(ARP)的值;在非兼容方)的值;在非兼容方式下式下(CMPT=0),指令只修改輔助寄存器的值,而不改,指令只修改輔助寄存器的值,而不改變變ARP。NOPn執(zhí)行執(zhí)行PC+1 PCn該指令除了程序指針執(zhí)行加操作以外不執(zhí)行任何操該指令除了程序指針執(zhí)行加操作以外不執(zhí)行任何操作。這在建立流水和執(zhí)行延遲方面比較有用。作。這在建立流水和執(zhí)行延遲方面比較有用。STLM A,AR1LD *AR1,BSTLM A,AR1NOPNOPLD *AR1,BRESETn非屏幕的軟件復位。非屏幕的軟

37、件復位。n該指令不受該指令不受INTM的影響,但它對的影響,但它對INTM置位以置位以禁止中斷。禁止中斷。RSBX SXMRSBX 1,8n對狀態(tài)寄存器對狀態(tài)寄存器ST0和和ST1的特定位清的特定位清0。N指明了被修指明了被修改的狀態(tài)寄存器(改的狀態(tài)寄存器(N0表示修改表示修改ST0寄存器,寄存器,N1表表示修改示修改ST1寄存器),寄存器),SBIT確定被修改的位??芍苯哟_定被修改的位??芍苯佑脿顟B(tài)寄存器中的一個特定位的名稱作為操作數(shù),這用狀態(tài)寄存器中的一個特定位的名稱作為操作數(shù),這樣就不需要使用樣就不需要使用N和和SBIT。SSBX SXMSSBX 1,8n對狀態(tài)寄存器對狀態(tài)寄存器ST0和

38、和ST1的特定位置的特定位置1。XC 1,ALEQMAR *AR1+n該指令的運行情況由該指令的運行情況由n和所選擇的條件決定。如果和所選擇的條件決定。如果n1并且滿足條件,就執(zhí)行該指令的下一條單字指令;如并且滿足條件,就執(zhí)行該指令的下一條單字指令;如果果n2并且滿足條件,就執(zhí)行該指令的下兩條單字指并且滿足條件,就執(zhí)行該指令的下兩條單字指令或者一條雙字指令;如果不滿足條件,執(zhí)行令或者一條雙字指令;如果不滿足條件,執(zhí)行n次次nop操作。操作。裝入和存儲指令裝入和存儲指令v一般的裝入和存儲指令一般的裝入和存儲指令v條件存儲指令條件存儲指令v并行裝入和存儲指令并行裝入和存儲指令v并行裝入和乘法指令并

39、行裝入和乘法指令v并行存儲和加減乘指令并行存儲和加減乘指令v混合裝入和存儲指令混合裝入和存儲指令一般的裝入指令一般的裝入指令DLD *AR3+,Bn把一個把一個32位的長操作數(shù)位的長操作數(shù)Lmem裝入目的累加器裝入目的累加器dst中。中。LD *AR4,DPn把一個數(shù)據(jù)存儲器的值或一個短立即數(shù)裝入把一個數(shù)據(jù)存儲器的值或一個短立即數(shù)裝入T寄存器或寄存器或狀態(tài)寄存器中的狀態(tài)寄存器中的DP、ASM和和ARP位。位。LDM AR4,An把存儲器映射寄存器把存儲器映射寄存器MMR中的值裝入到目的累加器的中的值裝入到目的累加器的低位字中,累加器的高位字和保護位清低位字中,累加器的高位字和保護位清0 。不論

40、。不論DP的的當前內(nèi)容或當前內(nèi)容或ARx的高的高9位是多少,有效地址的高位是多少,有效地址的高9位清位清0,將數(shù)據(jù)頁指針設置為將數(shù)據(jù)頁指針設置為0。LDR *AR1,An把單數(shù)據(jù)存儲器操作數(shù)把單數(shù)據(jù)存儲器操作數(shù)Smem左移左移16位后裝入目的累位后裝入目的累加器加器DST的高端的高端(位位3116)。Smem通過對累加器的通過對累加器的位位140清清0進行四舍五入運算,累加器的第進行四舍五入運算,累加器的第15位設置位設置為為1。LDU *AR1,An把單數(shù)據(jù)存儲器把單數(shù)據(jù)存儲器Smem的值裝入目的累加器的值裝入目的累加器dst的低端的低端(位(位150),),dst的保護位和高端的保護位和高

41、端(位位3916)清清0。因。因此,數(shù)據(jù)被看成是一個無符號的此,數(shù)據(jù)被看成是一個無符號的16位數(shù),不管位數(shù),不管SXM位位的狀態(tài)如何都不進行符號擴展。的狀態(tài)如何都不進行符號擴展。存貯指令存貯指令DST B,*AR3+n把源累加器的內(nèi)容存放在一個把源累加器的內(nèi)容存放在一個32位的長數(shù)據(jù)儲存器單位的長數(shù)據(jù)儲存器單元中元中Lmem中。中。ST T,*AR7ST #FFFFh,0STH A,10n把源累加器把源累加器src的高端(位的高端(位3116)存放到數(shù)據(jù)存儲)存放到數(shù)據(jù)存儲器單元器單元Smem中中.STH B,8,*AR7n把源累加器移位后位把源累加器移位后位3116存放到數(shù)據(jù)存儲器單元存放到

42、數(shù)據(jù)存儲器單元(Smem或或Xmem)中。)中。STLM A,BRCn把源累加器把源累加器src的低端的低端(位位150)存放到存儲器存放到存儲器映射寄存器映射寄存器MMR中。無論中。無論DP的當前值或的當前值或ARx的高的高9位是多少,有效地址的高位是多少,有效地址的高9位清位清0。并行裝入和乘法指令并行裝入和乘法指令LD *AR4+, A|MAC *AR5+,Bn16位雙數(shù)據(jù)存儲器操作數(shù)位雙數(shù)據(jù)存儲器操作數(shù)Xmem左移左移16位后裝入目的位后裝入目的累加器的高端。同時并行執(zhí)行一個雙數(shù)據(jù)操作數(shù)累加器的高端。同時并行執(zhí)行一個雙數(shù)據(jù)操作數(shù)Ymem與與T寄存器的值相乘再把乘積加到寄存器的值相乘再把

43、乘積加到dst_中的操作。中的操作。LD *AR4+,16,A|MACR *AR5+,Bn指令帶有指令帶有R后綴,則對乘積和累加器操作的結果進行后綴,則對乘積和累加器操作的結果進行四舍五入,再存在四舍五入,再存在dst中。四舍五入的方法是:給該值中。四舍五入的方法是:給該值加上加上215,然后將結果的低端,然后將結果的低端(位位150)清清0。混合裝入和存儲指令混合裝入和存儲指令MVDD *AR3+,*AR5+n將將Xmem尋址的數(shù)據(jù)存儲器單元的內(nèi)容復制到尋址的數(shù)據(jù)存儲器單元的內(nèi)容復制到Ymem尋址的數(shù)據(jù)存儲器單元中。尋址的數(shù)據(jù)存儲器單元中。例:對數(shù)組例:對數(shù)組x8=0,1,2,3,4,5,6,7進行初始化進行初始化n .bss x,8n .datanTable: .word 0,1,2,3,4,5,6

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論