




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第3章TMS320C54x的指令系統
知識要點:本章涉及的內容包括TMS320C54x指令系統尋址方式的分類和功能,指令系統中的常用符號、縮略語和運算符,數據傳送、算術運算、邏輯運算、程序控制、并行操作和重復操作指令。3.1尋址方式指令的尋址方式是指硬件尋找指令指定的參與運算的操作數的方法。
TMS320C54x有7種基本的數據尋址方式:立即尋址、絕對尋址、累加器尋址、直接尋址、間接尋址、存儲器映像寄存器尋址和堆棧尋址。表3.1.1列出了尋址方式中用到的一些縮略語名稱及其含義。縮寫符號含義Smem16位單數據存儲器操作數Xmem在雙操作數指令及某些單操作數指令中所用的16位雙數據存儲器操作數,從DB總線上讀出Ymem在雙操作數指令中所用的16位雙數據存儲器操作數,從CB總線上讀出;在讀同時并行寫的指令中表示寫操作數dmad16位立即數——數據存儲器地址(0~65535)pmad16位立即數——程序存儲器地址(0~65535)PA16位立即數——I/O口地址(0~65535)src源累加器(A或B)dst目的累加器(A或B)lk16位長立即數表3.1.1部分尋址縮略語3.1.1立即尋址立即尋址主要用于初始化,其特點是指令中包含有一個固定的立即數,因此沒有尋找數據地址的過程。
在一條指令中的立即數有短立即數和長立即數兩類。立即數的長度由使用的指令類型決定。表3.1.2列出了可以包含立即數的指令,并指出了立即數的位數。3位或5位立即數 8位立即數9位立即數16位立即數LDFRAMELDRPTLDADDADDMANDANDMBITFCMPMLDMACORORMRPTRPTZSTSTMSUBXORXORM表3.1.2支持立即尋址的指令在立即尋址方式指令中,應在數值或符號前面加一個“#”,表示一個立即數,以區別于地址。例如,將一個十六進制數80H,裝入累加器A的指令為:
LD #80H,A3.1.2絕對尋址絕對尋址利用16位地址尋址存儲單元,其特點是指令中包含一個固定地址。
絕對尋址有以下四種類型:①數據存儲器地址(dmad)尋址該尋址類型用于確定操作數存于數據存儲單元的地址。語法是使用一個程序標號或一個數字來指定數據空間的一個地址。例如,將數據存儲器EXAM1地址單元中的數據復制到AR5寄存器指向的數據存儲單元中去,即MVKD EXAM1,*AR5其中EXAM1是16位地址dmad值。②程序存儲器地址(pmad)尋址該尋址類型用于確定程序存儲器中的一個地址。語法是使用一個符號或具體的數字來指定程序空間的一個地址。例如,將程序存儲器TABLE地址單元中的內容復制到AR2寄存器所指向的數據存儲單元中,即MVPD TABLE,*AR2其中TABLE是16位地址pmad值。③端口(PA)尋址該尋址類型是用一個符號或一個數字來確定外部I/O端口的地址。例如,把一個數從端口位FIFO的I/O口復制到AR5寄存器所指向的數據存儲單元中,即PORTR FIFO,*AR5其中FIFO是I/O端口地址PA。④*(1K)尋址該尋址類型是使用一個指定數據空間的地址來確定數據存儲器中的一個地址。例如,把地址為PN的數據單元中的數據裝到累加器A中,即LD *(PN),A3.1.3累加器尋址累加器尋址是將累加器的內容作為地址去訪問程序存儲器單元,即將累加器中的數作為地址,用來對存放數據的程序存儲器尋址。有兩條指令可以采用累加器尋址。①READA Smem②WRITA Smem3.1.4直接尋址直接尋址是利用數據指針和堆棧指針尋址,其特點是數據存儲器地址由基地址和偏移地址共同構成,共16位。基地址位于數據存儲器地址的高9位,偏移地址位于數據存儲器地址(dmad)的低7位。下面分別給出了直接尋址的指令代碼格式以及各位說明。
操作碼I=0數據存儲器地址15~876~0位名稱功能15~8操作碼這8位包含了指令的操作碼7II=0,表示指令使用的尋址方式位直接尋址6~0數據存儲器地址這7位包含了指令的數據存儲器地址偏移表3.1.3直接尋址的各位說明圖3.1.1直接尋址的指令代碼格式DP和SP都可以與dmad偏移結合產生實際的地址。位于狀態寄存器ST1的CPL位可以選擇采用哪種方式生成實際的地址。①當CPL=0,以數據頁指針寄存器DP中的9位高位,以指令中的7位為低位,共同構成16位數據存儲單元的地址,如下圖:9位數據頁指針DP值7位IR值15~76~0圖3.1.2CPL=0時,16位數據存儲單元的地址②當CPL=1時,將堆棧指針SP的16位地址與指令中的7位地址相加,形成16位的數據存儲器地址,如圖:16位堆棧指針SP15~00000000007位IR值15~76~0有效存儲地址圖3.1.3CPL=1時,16位數據存儲單元的地址3.1.5間接尋址間接尋址是利用輔助寄存器內容作為地址指針訪問存儲器。TMS320C54x有8個16位輔助寄存器(AR0~AR7)。每一個寄存器都可以用來尋址64K數據存儲空間中任何一個單元。算數運算單元(ARAU0、ARAU1)根據輔助寄存器的內容進行操作,完成16位無符號算術運算。間接尋址的靈活性體現在:不僅能從存儲器中讀或寫一個單16位的數據操作數,而且能在一條指令中訪問兩個數據存儲單元。①單操作數尋址下圖列出了單操作數間接尋址指令的格式:
表3.1.4列出了單操作數間接尋址指令的各位說明15~876~32~0圖3.1.4單操作數間接尋址指令的格式操作碼I=1MODARF表3.15列出了16種單操作數間接尋址的功能及其說明。位名稱功能15~8操作碼8位域包含了指令操作碼7II=1,表示間接尋址方式6~3MOD定義尋址方式的類型2~0ARF定義了尋址所使用的輔助寄存器,①CMPT=0時,則ARF=0確定輔助寄存器,這種方式下,ARP一直為0。②CMPT=1時,若ARF=0,用ARP選擇輔助寄存器,否則用ARF確定,當訪問完成后,把ARF的值裝入ARP。表3.1.4單操作數間接尋址指令的各位說明表3.1.5單數據存儲器操作數間接尋址類型
上表中還有兩種特殊的間接尋址方式:循環尋址方式和位倒序尋址方式。⑴循環尋址在信號處理常用的卷積、相關、FIR濾波算法中,都需要在存儲器中實現一個循環緩沖區,它是一個包含最新數據的滑動窗口。在尋址計算過程中,新進來的數據會覆蓋較早的數據。循環尋址是實現循環緩沖區的關鍵。
寄存器BK用于確定循環緩沖區的大小。長度為R的循環緩沖區必須從一個N位(N是滿足2的N次方>R條件的最小整數)邊界開始。
例如:長度R=32循環緩沖區必須從低6位為0的地址xxxxxxxxxxx000000(N=6,26>32)開始,同時用以下指令將R值加載到BK中:STM #32BK循環尋址時,要指定一個ARx指向循環緩沖區的一個單元。該ARx的低N位置0后所得到的值為循環緩沖區的有效基地址。用BK的低N位代替ARx的低N位所得到的值為循環緩沖區的尾地址。ARx的低N位就是循環緩沖區的index,step就是加到ARx或從ARx中減去的值。循環尋址算法如下:
If
0≤index+step<BK; index=index+stepElseifindex+step≥BK; index=index+step-BKElseifindex+step<0; index=index+step+BK實際上是以BK寄存器中的值為模的取模運算。⑵位倒序尋址
位倒序尋址可以提高FFT等算法效率。例如16點FFT的位倒序尋址如表3.1.6所示。C54x提供的位倒序尋址功能,提高了在FFT算法中使用存儲器的效率及其執行速度。設FFT長度N=16,則AR0賦值為8,AR2表示在存儲區中數據的基地址(01100000),位倒序讀入數據:*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個值)表3.1.6位倒序尋址返回本節②雙操作數尋址雙操作數尋址用于完成執行2次讀操作或者1次讀和1次并行存儲操作。這些指令代碼都是1個字長,而且只能以間接尋址方式進行操作。兩個數據存儲器操作數由Xmem和Ymem表示,Xmem是讀操作數,Ymem是在讀兩個操作數時表示讀操作數,在1次讀同時并行1次寫的指令中表示寫操作。下圖列出了雙操作數尋址的指令代碼格式:操作碼XmodXarYmodYar15~876543210位名稱功能15~8操作碼8位代碼包含了指令的操作碼7~6Xmod定義了用于尋址Xmem操作數的間接尋址方式的類型5~4Xar2位代碼確定了存儲Xmem地址的輔助寄存器3~2Ymod定義了用于尋址Ymem操作數的間接尋址方式類型1~0Yar2位代碼確定存儲Ymem地址的輔助寄存器表3.1.7雙操作數的各位說明:圖3.1.5雙操作數尋址的指令代碼格式由于只有2位可以用于選擇輔助寄存器,所以根據Xar或Yar的值可以選擇4個寄存器。下表列出了Xar或Yar同輔助寄存器的對應關系:Xar或Yar值輔助寄存器00AR201AR310AR411AR5表3.1.8Xar或Yar同輔助寄存器的對應關系下表列出了雙操作數間接尋址的類型:操作碼語法功能說明*ARx地址=ARxARx中的內容是數據存儲地址*ARx-地址=ARx尋址后,ARx的地址減1ARx=ARx-1*ARx+地址=ARX尋址后,ARx的地址加1Arx=ARx+1*ARx+0%ARx=Circ(ARx+AR0)尋址后,AR0以尋址方式加到ARx中地址=ARx表3.1.9雙操作數間接尋址的類型3.1.6存儲器映像寄存器尋址存儲器映像寄存器(MMR)尋址用于修改存儲器映像寄存器的值,而不影響當前數據頁指針(DP)或堆棧指針(SP)的值。由于DP和SP的值不需要修改,所以寫寄存器操作的開銷最小。存儲器映像寄存器尋址可以工作在直接和間接尋址方式下。有以下兩種產生MMR地址的方法。①直接尋址。在直接尋址方式中,不管當前DP或SP的值如何,強制數據存儲器地址的高9位為0。利用指令中數據存儲器地址的低7位訪問MMR,相當于基地址為0的直接尋址方式。②間接尋址。在間接尋址方式中,使用當前輔助寄存器的低7位作為地址訪問MMR。指令執行后,輔助寄存器中的高9位清為0。3.1.7堆棧尋址系統堆棧用于在發生中斷或子程序調用時自動存放程序計數器(PC)中的值。堆棧也能用來保護現場或傳送參數。’C54x的堆棧是從高地址向低地址方向填入。處理器使用一個16位堆棧指針(SP)來對堆棧進行管理,SP始終指向存放在堆棧中的最后一個元素。有四條指令使用堆棧尋址方式:·PSHD,將數據存儲器中的一個數壓入堆棧。·PSHM,將一個存儲器映像寄存器(MMR)中的值壓入堆棧。·POPD,從堆棧彈出一個數到數據存儲單元。·POPM,從堆棧彈出一個數到存儲器映像寄存器(MMR)。執行壓入操作時,是先減小SP后再將數據壓入堆棧的;而執行堆棧彈出操作時,則先從堆棧彈出數據,然后再增加SP的值。3.2TMS320C54x指令的表示方法TMS320C54x的助記符指令時由操作碼和操作數兩部分組成。在進行匯編以前,操作碼和操作數都是用助記符表示。3.2.1指令系統中的符號表3.2.1是指令系統中的符號和縮略語。表3.2.1指令系統中的符號和縮略語3.2.2指令系統中的運算符表3.2.2列出了表達式中可用的運算符號及運算的優先級。符號+-~!取正、取負、按位求補、邏輯負從右到左*/%乘法、除法、求模從左到右+-加法、減法從左到右^指數從左到右<<>>左移、右移從左到右<≤小于、小于或等于從左到右>≥
大于、大于或等于從左到右≠!=不等于從左到右=等于從左到右&按位與運算從左到右∧按位異或運算從左到右|按位或運算從左到右3.3TMS320C54x的指令系統TMS320C54x的指令系統共有129條基本命令,由于操作數的尋址方式不同,由它們可以派生出205條指令。按指令的功能分類,可以分成數據傳送指令、算術運算指令、邏輯運算指令、程序控制指令、并行操作指令和重復操作指令。3.3.1數據傳送指令數據傳送指令是從存儲器中將源操作數傳送到目的操作數所指定的存儲器中。’C54x的數據傳送指令包括裝載指令、存儲指令、混合指令和存儲指令。裝載指令共21條,用于立即數或存儲器內容賦給目的寄存器。表3.3.1列出了這些指令的語法表示、運行結果以及相關注釋。
表3.3.1裝載指令存儲指令共18條,用于將源操作數或立即數存入指定存儲器或寄存器。表3.3.2列出了存儲指令的語法表示、運行結果及注釋。
表3.3.2存儲指令混合裝載和存儲指令共12條,它的語法表示、運行結果及注釋如表3.3.3。表3.3.3混合裝載和存儲指令3.3.2算術運算指令TMS320C54x的算術指令具有運算功能強、指令豐富等特點,它包括加法指令、減法指令、乘法指令、乘法-累加指令、乘法-減法指令、雙字運算指令及特殊應用指令。
①加法指令加法指令共13條,如表3.3.4。
②減法指令減法指令共13條,如表3.3.5
表3.3.5減法指令
③乘法指令乘法指令共10條,如表3.3.6。表3.3.6乘法指令④乘法-累加指令和乘法-減法指令乘法-累加指令和乘法-減法指令,共22條。如表3.3.7所示。
表3.3.7乘法-累加指令和乘法-減法指令⑤雙字算術運算指令雙字算術運算指令共6條,如表3.3.8。
表3.3.8雙字算術運算指令⑥特殊運算指令特殊運算指令共15條,如表3.3.9
表3.3.9特殊運算指令3.3.3邏輯運算指令TMS320C54x的邏輯運算指令包括與指令、或指令、異或指令、移位指令及測試指令。
與指令,共5條,如表3.3.10。
表3.3.10與指令或指令,共5條,如表3.3.11。表3.3.11或指令
異或指令,共5條,如表3.3.12。表3.3.12異或指令移位指令共6條,如表3.3.13
表3.3.13移位指令測試指令共5條,如表3.3.14
表3.3.14測試指令3.3.4程序控制指令TMS320C54x的程序控制指令包括分支轉移指令、子程序調用指令、中斷指令、返回指令、堆棧操作指令及其他程序控制指令,分別敘述如下。分支轉移指令共6條,如表3.3.15:
表3.3.15分
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海南文昌馮坡農業公司經營模式的演進、成效與優化路徑研究
- 《京報副刊》新詩傳播研究
- 社交電商商業模式對企業價值創造的影響研究-以拼多多為例
- 早期血清炎癥生物標志物在預測小型囊性顱內動脈瘤不穩定進展中的價值研究
- 含油污水水力旋流器分離與余熱回收一體化技術研究
- 肉牛買賣合同買賣合同
- 覺醒年代中的教育理念心得體會
- PEP五年級英語下冊課后輔導計劃
- 高層建筑施工組織管理措施
- 醫院年度經營管理工作計劃
- 2025年遼寧中考物理模擬練習卷(3)(含答案)
- 2025河北地質大學招聘工作人員48人筆試備考題庫及答案解析
- 2024-2025學年七年級下學期期中英語模擬試卷(深圳專用)(原卷版)
- 生物樣本庫建設及其在研究中的應用試題及答案
- 2025-2030中國硫酸銨行業市場運行分析及競爭格局與投資發展研究報告
- 北京市海淀區2024-2025學年第二學期期中練習暨海淀高三高三一模(海淀一模)(英語試卷+答案 )
- 兒童發展問題的咨詢與輔導-案例1-5-國開-參考資料
- GB 45184-2024眼視光產品元件安全技術規范
- 安全生產法律法規匯編(2025版)
- 【MOOC】健身氣功八段錦-東南大學 中國大學慕課MOOC答案
- 《現代漢語》第三章-文字
評論
0/150
提交評論