TMS320C5000系列DSP原理及應用(第二版)課件3-2(2)指令系統_第1頁
TMS320C5000系列DSP原理及應用(第二版)課件3-2(2)指令系統_第2頁
TMS320C5000系列DSP原理及應用(第二版)課件3-2(2)指令系統_第3頁
TMS320C5000系列DSP原理及應用(第二版)課件3-2(2)指令系統_第4頁
TMS320C5000系列DSP原理及應用(第二版)課件3-2(2)指令系統_第5頁
已閱讀5頁,還剩41頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

TMS320C54x是TMS320系列中一種定點數字信號處理器(DSP)。

1、指令系統形式:

1)助記符(Mnemonic)

2)代數(Algebraic)

2、本書介紹助記符指令系統,其內容包括:

1)指令表示方法

2)指令分類

3)指令特點

4)指令系統速查表

第三章指令系統1)指令表示方法

(1)指令系統中的符號和略語(P41表3-9)(2)操作碼中的符號和略語(P44表3-10)(3)指令系統中所用記號(P44表3-11)2)指令分類(1)周期(2)功能算術運算指令邏輯運算指令程序控制指令加載和存儲指令3)指令特點①可同時讀入2個或3個操作數②支持雙精度運算的32位長操作數指令③單條指令重復和塊指令重復操作④塊存儲器傳送指令⑤并行操作(并行存儲和加載,并行存儲和加/減法,并行存儲和乘法)指令

指令特點

⑥條件存儲指令⑦延遲操作指令⑧從中斷快速返回指令⑨特殊用途指令(支持FIR濾波、LMS、多項式計算以及浮點運算)⑩空轉(省電方式)指令4)指令系統速查表

說明:①C54xDSP有7種尋址方式構成一套高度專業化的指令系統②重復指令問題一、算術運算指令

u加法指令u減法指令u乘法指令u乘法累加/減指令u雙精度指令u專用指令1、加法指令P46

●ADD(10種句法)●ADDC(1種句法)●ADDM(1種句法)●ADDS(1種句法)Smem:16位單數據存儲器操作數

Xmem、Ymem:16位雙數據存儲器操作數

src、dst:A、B —32768≤lk≤32767 —16≤shift≤15 0≤shift≤15執行:表中的表達式OP.D:描述:指令加一個16位值給被選累加器A的內容或給雙數據存儲器操作數尋址方式中16位操作數Xmem。 被加的16位值是下列之一:

1)單數據存儲器操作數的內容(Smem)

2)雙數據存儲器操作數的內容(Ymem)

3)16位立即操作數(#lk)

4)源操作數(src)中移位值

如果dst被指定,指令存儲結果在dst,如果nodst被指定,指令存儲結果在src,大多數的第2個操作數被移位。對于左移:正 低階位清零。 高階位是:若SXM=1,符號擴展;若SXM=0,清零對于右移:負 高階位是:若SXM=1,符號擴展;若SXM=0,清零注意:下列指令在某種情況下以不同句法匯編。 第4條指令,如果dst=src,且shift=0,那么指令操作碼被匯編成第1條指令形式。 第4條指令,如果dst=src,且shift≤15且Smem間接尋址方式被包括在Xmem中,那么指令操作碼被匯編成第5條指令形式。

第5條指令,如果shift=0,指令操作碼被匯編成第1條指令形式。

指令課件資源首先登錄西安電子科技大學出版社網站()查找到本書,然后從本書配套的相關資源處下載DSP指令課件文件夾即可。打開DSP指令課件文件夾,雙擊運行C54xdsp課程.exe。出現如下界面:指令課件使用指令課件使用指令搜索中輸入指令助記符以加法指令為例,點擊4:指令課件資源包含了指令手冊中所有C54x指令,其中藍色標記的均有動畫演示,將指令微觀動作形象展示出來,讀者可以逐步訓練掌握復雜而功能強大的DSP指令。例2ADDA,-8,B

指令執行前

指令執行后

A0005401200HA0005401200H

B0000001800HB0000055812H

C1C0說明:A右移8位為0000054012H加上B,

得出B=0000055812H,無進位C=0例3ADD#4568H,8,A,B

指令執行前

指令執行后A0000001200HA0000001200HB0000001800HB0000457A00HC1C0說明:4568H左移8位為00456800H加上A→

B=0000457A00H,C=0

例4

ADDC*+AR2(5),A指令執行前

指令執行后A0000000030HA0000000045HC1C0AR20100HAR20105H數據存儲器

0100H0000H0100H0000H0105H0014H0105H0014H說明:尋址前AR2=0100H+5,(AR2)+A+1→

A=0000000045H,無進位C=0例5ADDM#123BH,*AR4+

指令執行前

指令執行后AR40100HAR40101H數據存儲器

0100H0014H0100H124FH說明:(AR4)+123BH=0014H+123BH=124FH→(0100H),

AR4+1→AR4例6ADDS*AR2-,B;禁止符號擴展指令執行前

指令執行后B0000000003HB000000F004HCXC0AR20106HAR20105H數據存儲器

0106HF001H0105HF001H說明:無符號數0F001H+B→B=000000F004H(注:P48例7)2.乘法累加指令(P53)MAC(4種句法)MACR(2種句法)MACA(2種句法)MACAR(2種句法)MACDMACPMACSU例7MAC#345H,A,B指令執行前

指令執行后A0000001000HA0000001000HB0000000000HB00001A3800HT0400HT0400HFRCT1FRCT1說明:T×0345H=0400H×0345H=000D1400H;

FRCT=1小數的乘法,系統自動將乘積結果

000D1400H左移1位為00001A2800H,加A,

最終結果:00001A3800H→B(注:P54例16)例8

MAC*AR3+,*AR4+,A,B(注:P54例17)指令執行前

指令執行后A0000001000HA0000001000HB0000000004HB000C4C10C0HT0008HT5678HFRCT1FRCT1AR30100HAR30101HAR40200HAR40201H數據存儲器

0100H5678H0100H5678H0200H1234H0200H1234H說明:(AR3)×(AR4)=5678H×1234H=6260060H,左移1位0C4C00C0H,加A為0C4C10C0H→B,T=(AR3),AR3+1→AR3,AR4+1→AR4例8

MACR*AR3+,*AR4+,A,B(注:P54例18)指令執行前

指令執行后A0000001000HA0000001000HB0000000004HB000C4C0000HT0008HT5678HFRCT1FRCT1AR30100HAR30101HAR40200HAR40201H數據存儲器

0100H5678H0100H5678H0200H1234H0200H1234H說明:指令后有R為帶舍入的乘累加,目的累加器B的結果進行湊整運算,

即結果加上215(8000H),低16位清零例9MACAT,B,B(注:P55例20)指令執行前

指令執行后A0012340000HA0012340000HB0000020000HB00009D4BA0HT0444HT0444HFRCT1FRCT1說明:T×(A(31—16))=0444H×1234H=004DA5D0H;FRCT=1,左移1位為009B4BA0H,加上B為00009D4BA0H→B例10MACD*AR2-,COEFFS,A(注:P55例21)指令執行前

指令執行后A0000770000HA00007D0B44HT0008HT0055HFRCT0FRCT0AR20100HAR200FFH程序存儲器

COEFFS1234HCOEFFS1234H數據存儲器

0100H0055H0100H0055H0101H0066H0101H0055H說明:(A)+(AR2)×(COEFFS)=00770000H+0055H×1234H

=007D0B44H→A,T=(AR2)=0055H,帶延時的操作數

(AR2+1)=(AR2)=0055H,(AR2)-1=00FFH→AR2例11MACSU*AR3+,*AR4+,A(注:P55例22)指令執行前

指令執行后A0000001000HA0009A0AA84HT0008HT8765HFRCT0FRCT0AR30100HAR30101HAR40200HAR40201H數據存儲器

0100H8765H0100H8765H0200H1234H0200H1234H說明:A+uns(AR3)×(AR4)=1000H+8765H×1234H=

09A0AA84H→A,T=8765H3.專用指令P59FIRSLMSABSMAXMINEXPNORMNEGRND例12FIRS*AR3+,*AR4+,COEFFS(注:P60例30)指令執行前

指令執行后A0000770000HA0000FF0000HB0000000000HB000008762CHAR30100HAR30101HAR40200HAR40201HFRCT0FRCT0數據存儲器

0100H0055H0100H0055H0200H00AAH0200H00AAH程序存儲器

COEFFS1234HCOEFFS1234H說明:B=B+A(31—16)×1234H=0008762CH,

(AR3)+(AR4)=00FFH,結果左移16位→A二、邏輯指令(P61)與邏輯運算指令(AND)或邏輯運算指令(OR)異或邏輯運算指令(XOR)移位指令(ROL)測試指令(BITF)三、程序控制指令(P61)分支轉移指令(B、BC)調用指令(CALL)中斷指令(INTR、TRAP)返回指令(RET)重復指令(RPT)堆棧操作指令(FRAME、POPD)混合程序控制指令(IDLE、NOP)1.分支轉移指令(P65表3-26)B[D]BACC[D]BANZ[D]BC[D]FB[D]FBACC[D]

例13用AR2作為循環計數器,設初值為4,

共執行5次加法運算

LOOP: ADD*AR1+,A

BANZLOOP,*AR2-

…例14BC3000H,AGT,AOV

指令執行前

指令執行后A0000300067HA0000300067HOVA1OVA1HPC2000HPC3000H(注:P65例37、38)2.調用指令(P66表3-27)CALA[D]CALL[D]CC[D]FCALA[D]FCALL[D]例14CALADB

ANDM4444h,*AR1+說明:具有延遲的指令。執行過程,先SP=SP-1,

PC+3→(SP)=0028H,A(15—0)→PC(注:P66例41)指令執行前

指令執行后B0000003000HB0000003000HPC0025HPC3000HSP1111HSP1110H數據存儲器

1110H4567H1110H0028H3.

中斷指令(P67表3-28)INTRTRAP例15INTR3指令執行前

指令執行后PC0025HPCFF8CHINTM0INTM1IPTR1FFHIPTR1FFHSP1000HSP0FFFH數據存儲器

0FFFH4567H0FFFH0026H說明:SP=SP-1,PC+1→SP=0026H,中斷向量指針IPTR為

PMST寄存器的的15~7位,PC=IPTR+K<<2=FF8CH,INTM=1(注:P67例42)四、加載和存儲指令(P69)加載指令(P69表3-33)存儲指令(P71表3-34)條件存儲指令(P73表3-35)其它加載和存儲指令(P74表3-36)例16MVDD*AR3+,*AR5+(注:P74例59)指令執行前

指令執行后AR30800HAR30801HAR50200HAR50201H數據存儲器

0200HABCDH0200H5555H0800H5555H0800H5555H說明:數據存儲器內部傳送數據,(AR3)→(AR5)=5555H五、并行執行指令(P74)并行加載和存儲指令(P75表3-37)并行加載和乘法指令(P76表3-38)并行存儲和加減指令(P77表3-39)并行存儲和乘法指令(P78表3-40)

說明:單字單周期指令例17

溫馨提示

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

評論

0/150

提交評論