最新-3C54指令系統(tǒng)《TMS320C54XDSP結(jié)構(gòu)、原理及應(yīng)用》-PPT精品課件_第1頁
最新-3C54指令系統(tǒng)《TMS320C54XDSP結(jié)構(gòu)、原理及應(yīng)用》-PPT精品課件_第2頁
最新-3C54指令系統(tǒng)《TMS320C54XDSP結(jié)構(gòu)、原理及應(yīng)用》-PPT精品課件_第3頁
最新-3C54指令系統(tǒng)《TMS320C54XDSP結(jié)構(gòu)、原理及應(yīng)用》-PPT精品課件_第4頁
最新-3C54指令系統(tǒng)《TMS320C54XDSP結(jié)構(gòu)、原理及應(yīng)用》-PPT精品課件_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、D S P 原理 與 應(yīng) 用The principle and application of DSP主 講:胡文靜Q Q :228405520Email :avonhu126第三章 C54指令系統(tǒng)本章知識概要:尋址方式指令表示方法指令系統(tǒng)學(xué)習(xí)重點:尋址方式的分類及功能指令符號、縮略語及運算符常用指令尋址方式定義:尋找指令所指定的參與運算的操作數(shù)的方法。采用不同的尋址方式,會影響程序執(zhí)行時間和代碼效率。分為兩大類:程序?qū)ぶ泛蛿?shù)據(jù)尋址。7種基本的尋址方式: 立即尋址 絕對尋址 累加器尋址 直接尋址 間接尋址 存儲器映像寄存器尋址 堆棧尋址常用縮略語縮略語含 義Smem16位單尋址操作數(shù)Xmem16

2、位雙尋址操作數(shù),用于雙操作數(shù)或部分單操作數(shù)指令,從DB數(shù)據(jù)總線上讀取Ymem16位雙尋址操作數(shù),用于雙操作數(shù)指令,從CB數(shù)據(jù)總線上讀取dmad16位立即數(shù):數(shù)據(jù)存儲器地址(065 535)pmad16位立即數(shù):程序存儲器地址(065 535)PA16位立即數(shù):I/O口地址(065 535)src源累加器(A或B)dst目的累加器(A或B)1k16位長立即數(shù)立即尋址指令中含有執(zhí)行指令所需的操作數(shù)。操作數(shù)緊隨操作碼存放在程序存儲器中。例如: LD #F180,A;將立即數(shù)F180加載到A立即數(shù)的數(shù)值形式: 短立即數(shù): 3、5、8、9位,單字指令; 長立即數(shù): 16位,雙字指令特點指令中含有一個固定

3、的立即數(shù),運行速度較快;但需占用程序存儲空間,并且數(shù)值不能改變。用途用于表示常數(shù)或?qū)拇嫫鞒跏蓟?。支持立即尋址的指?位立即數(shù) 5位立即數(shù) 8位立即數(shù) 9位立即數(shù) 16位立即數(shù) LD LD FRAME LD RPT LD ADD ADDM ANDAND MBITFCMPM LD MAC OR ORM RPT RPTZ ST STM SUBXOR XORM 絕對尋址指令中含有所要尋找的操作數(shù)的16位存儲單元地址或I/O空間地址。16位地址表示形式: 地址標(biāo)號,如:TABLE; 16位符號常量,如:89AB、1234。特點指令中包含一個固定的16位地址,能尋址所有數(shù)據(jù)存儲空間,但速度慢,需要較大的

4、存儲空間。用途用于對速度要求較低的場合。Question:絕對尋址的指令字長至少多少?絕對尋址有四種類型 : 數(shù)據(jù)存儲器地址(dmad)尋址;確定數(shù)據(jù)存儲器中的一個地址,dmad可以是程序標(biāo)號或數(shù)字。 程序存儲器地址(pmad)尋址;確定程序存儲器中的一個地址,pmad可以是符號或具體的數(shù)字。 端口(PA)尋址;確定外部端口的地址,PA可以是符號或具體的數(shù)字。 *(1k)尋址。確定數(shù)據(jù)存儲器中的一個地址,(1k)是一個指定數(shù)據(jù)空間的地址(16位)。絕對尋址舉例舉例: MVKDEXAM1, *AR5將數(shù)據(jù)存儲器EXAM1地址單元的內(nèi)容復(fù)制到輔助寄存器AR5所指向的地址單元。 MVPDTABLE,

5、 *AR2將程序存儲器TABLE1地址單元的內(nèi)容復(fù)制到輔助寄存器AR2所指向的地址單元。 PORTRFIFO, *AR5將數(shù)據(jù)從FIFO端口復(fù)制到輔助寄存器AR5所指向的地址單元。 LD *(PN), A將地址為PN的數(shù)據(jù)單元的內(nèi)容裝載到累加器A。累加器尋址定義以累加器中的內(nèi)容作為地址去尋址程序存儲器存放數(shù)據(jù)的程序存儲器。用途用于程序存儲器和數(shù)據(jù)存儲器之間的數(shù)據(jù)交換。舉例 READASmem以累加器A中的內(nèi)容為地址去讀取程序存儲器,寫入Smem所指向的數(shù)據(jù)存儲器。 WRITASmem將Smem所指向的數(shù)據(jù)存儲器內(nèi)容寫入以累加器A中的內(nèi)容為地址的程序存儲器。直接尋址利用指令中包含的數(shù)據(jù)存儲器的低

6、7位地址+基地址得到16位數(shù)據(jù)存儲器的地址?;刂罚?DP,數(shù)據(jù)頁指針; SP,堆棧指針。用途:利用DP和SP尋址數(shù)據(jù)存儲器(DM)。格式:特點: 指令中含有數(shù)據(jù)存儲器的低7位地址(偏移); 16位地址由基地址(DP或SP)和偏移地址(dmad)組合而成。Question: 如何確定基地址具體形式?直接尋址地址形成過程 CPL=0Question:16位地址具體分布情況?直接尋址地址形成過程 CPL=1直接尋址表示表示: 變量前加,如x; 偏移量前加,如10。特點: 不改變DP和SP的情況下,隨機訪問128個單元任何一個單元; 指令短,每條指令只有一個字。例1:數(shù)據(jù)存儲器存儲數(shù)據(jù)如圖所示,采用

7、數(shù)據(jù)頁指針DP直接尋址,完成x,y單元的兩個數(shù)據(jù)求和。直接尋址舉例+直接尋址舉例+直接尋址舉例例2:數(shù)據(jù)存儲器存儲數(shù)據(jù)如圖所示,采用堆棧指針SP直接尋址,求堆棧中距棧頂兩個數(shù)x, y的單元的和。(SP=0200H)+間接尋址利用輔助寄存器內(nèi)容作為地址指針訪問存儲器,C54系列DSP具有8個16位輔助寄存器(AR0AR7)尋址范圍:每一個輔助寄存器可以尋址64K字的數(shù)據(jù)存儲空間中的任何一個單元。利用兩個輔助寄存器算術(shù)運算單元(ARAU0和ARAU1),對輔助寄存器的內(nèi)容進行操作,可以完成16位無符號數(shù)算術(shù)運算。特點: 能從存儲器中讀或?qū)懸粋€單16位數(shù)據(jù)操作數(shù); 能在單指令中讀兩個獨立的數(shù)據(jù)存儲單

8、元; 能在單指令中讀一個存儲單元的同時寫一個存儲單元; 能在單指令中讀寫兩個連續(xù)的存儲單元。單操作數(shù)間接尋址單操作數(shù)間接尋址形式MOD域 操作句法功 能說 明0000 * ARx 地址=ARx ARx的內(nèi)容為數(shù)據(jù)存儲器地址0001 * ARx- 地址=ARx ARx=ARx-1 尋址結(jié)束后,ARx地址減1 。注2 0010 * ARx+ 地址=ARx ARx=ARx+1 尋址結(jié)束后,ARx地址加1。 注1 0011 * +ARx ARx=ARx+1 地址=ARx ARx中的地址加1后,再尋址。 注1 、注2、注3 0100 * ARx-0B 地址=ARx ARx=B(ARx-AR0) 尋址結(jié)束

9、后,用位倒序進位的方法 從ARx中減去AR0的值。 注1:尋址16位字時增/減量為1,32位字時增/減量為2。注2:這種方式只能用寫操作指令。注3:這種方式不允許對存儲器映像寄存器尋址。 單操作數(shù)間接尋址形式MOD域 操作句法功 能說 明0101 * ARx-0 地址=ARx ARx=ARx-AR0尋址結(jié)束后,從ARx中減去AR0的值。0110 * ARx+0 地址 = ARx ARx=ARx+AR0 尋址結(jié)束后,把AR0加到ARx中0111 * ARx+0B 地址=ARx ARx=B(ARx+AR0)尋址結(jié)束后,用位倒序進位的方法將 AR0加到ARx中1000 * ARx-% 地址=ARx

10、ARx=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。單操作數(shù)間接尋址形式MOD域 操作句法功 能說 明1010 * ARx+% 地址=ARx ARx=Circ(ARx+1)尋址結(jié)束后,ARx中的地址值按循環(huán)加的方法加1。注1 1011 * ARx+0% 地址=ARx ARx=Circ(ARx+AR0) 尋址結(jié)束后,按循環(huán)加的方法將AR0中的值加到ARx。 1100 * ARx

11、(lk) 地址=ARx+lk ARx=ARx以ARx與16位數(shù)之和作為地址,尋址結(jié)束后,ARx中的值不變。 1101 * +ARx(lk) 地址=ARx+lk ARx=ARx+lk將一個16位帶符號數(shù)加到ARx,然后尋址。注31110 * ARx(lk)% 地址=Circ(ARx+lk) ARx=Circ(ARx+lk) 將一個16位帶符號數(shù)按循環(huán)加的方法加至ARx,然后再尋址1111 * (lk) 地址=(lk)利用16位無符號數(shù)作為地址,尋址數(shù)據(jù)存儲器注3:這種方式不允許對存儲器映像寄存器尋址。間接尋址雙操作數(shù)尋址Xmod, Ymod操作碼語法功 能 說 明 0 0* ARx地址=ARxA

12、Rx中的內(nèi)容是數(shù)據(jù)存儲器地址 0 1* ARx-地址=ARxARx=ARx-1尋址后,ARx的地址減1 1 0* ARx+地址=ARxARx=ARx+1尋址后,ARx的地址加1 1 1* ARx+0%地址=ARxARx=Circ(ARx+AR0)尋址后,AR0以循環(huán)尋址方式加到ARx中去 存儲器映像寄存器尋址用途:用于修改存儲器映像寄存器的值,不影響當(dāng)前數(shù)據(jù)頁指針(DP)或堆棧指針(SP)的值??晒ぷ饔谥苯踊蜷g接尋址方式。MMR地址: 直接尋址高9位數(shù)據(jù)存儲器地址置0,利用指令中的低7位地址訪問MMR; 間接尋址高9位數(shù)據(jù)存儲器地址置0,按當(dāng)前AR的低7位地址訪問MMR;結(jié)束后,AR的高9位強

13、制置0堆棧尋址堆棧中斷和子程序調(diào)用時自動存放PC的值;保護現(xiàn)場和傳遞參數(shù)。從高地址向低地址方向填入;通過堆棧指針(SP)管理堆棧;SP始終指向存放于堆棧中的最后一個元素。操作:壓棧(PUSH)- SP減?。怀鰲#≒OP)- SP增大;FILO原則。PSHD Smem ;Smem壓入堆棧POPD Smem ;棧頂彈出到SmemPSHM MMR ;MMR壓入堆棧POPD MMR ;棧頂彈出到MMRC54x指令表示方法 操作碼(opcode)和操作數(shù)(oprand)構(gòu)成助記符指令。C54x指令系統(tǒng)C54x的指令系統(tǒng)可以分為六種基本類型算術(shù)運算類指令邏輯運算類指令程序控制類指令裝載與存儲類指令并行類指令指令重復(fù)指令參見附錄E算術(shù)運算指令加法ADD to Accumulator例:ADD *AR3+, 14, A 執(zhí)行前 執(zhí)行后算術(shù)運算指令減法累加器減 (SUB)例:SUB *AR1+, 14, A 執(zhí)行前 執(zhí)行后算術(shù)運算指令乘法舍入/非舍入乘法(MPY(R)例:MPY 13, A 執(zhí)行前 執(zhí)行后雙字運算指令雙字加(DADD)例2:DADD *AR3+, A, B 執(zhí)行前 執(zhí)行后特殊運算指令特殊應(yīng)用指令邏輯運算類指令與(AND)指令或(OR)

溫馨提示

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

評論

0/150

提交評論