DSP實驗--第三章 數(shù)據(jù)尋址方式.ppt_第1頁
DSP實驗--第三章 數(shù)據(jù)尋址方式.ppt_第2頁
DSP實驗--第三章 數(shù)據(jù)尋址方式.ppt_第3頁
DSP實驗--第三章 數(shù)據(jù)尋址方式.ppt_第4頁
DSP實驗--第三章 數(shù)據(jù)尋址方式.ppt_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、DSP54.31,1.立即尋址 1)定義: 操作數(shù)被包含在執(zhí)行的指令中; 用來表示常數(shù)或初始化寄存器,但速度慢, 需要較多的存儲空間; 表示方法 :在數(shù)字前面加 # 號 2)指令格式: 短立即數(shù)操作數(shù)為 3、5 、8或 9 bit (1 word, 1 cycle) LD #12h, A; 長立即數(shù)操作數(shù)為 16 bit 常數(shù) (2 words, 2 cycles) LD #1234h, A;,LD A # (opcode),1,2,LD to A # (opcode),1 2 3 4,DSP54.32,立即尋址指令,DSP54.33,2。絕對尋址 1)定義: 指令中包含有所要尋址的存儲單元的

2、16bit地址; 存儲單元的16bit地址,可以用其所在單元地址的標 號或16bit符號常數(shù)(常數(shù)前面無 # 號)來表示; 允許尋址任何一個dmad,速度慢,需要較多的存儲 空間; 2)4種類型: (dmad) 尋址:用一個符號或一個常數(shù)確定數(shù)據(jù)空間中的 一個地址;,例: MVKD DATA, *AR5 or its equivalent: MVKD *(DATA), *AR5,DSP54.34, (pmad) 尋址:用一個符號或一個常數(shù)確定程序空間中的 一個地址;,例: MVDP *AR5-, TABLE or its equivalent: MVDP *AR5-, *(TABLE), (P

3、A) 尋址:用一個符號或一個常數(shù)確定外部I/O口 一個地址;,例: PORTW OUTPUT, 00B0h or its equivalent: PORTW *(OUTPUT), 00B0h, *(lk) 尋址:適用于支持所有單數(shù)據(jù)存儲器(Smem)操作數(shù)的 指令;,DSP54.35,3) 絕對尋址舉例,.data x: .word 1000h y: .word 500h .text LD *(x), A ADD *(y), A,0 0 0 0 0 0 1 0 0 0,0 0 0 0 0 0 1 5 0 0,ACC A,Addr. Data,0180 1001 x: 01FF 1000 y:

4、0200 0500 ,DSP54.36,3。累加器尋址 1)定義: 用累加器中的數(shù)作為地址,用來對存放數(shù)據(jù)的程序 存儲器尋址;(用來讀寫程序存儲器中的數(shù)據(jù)) 通常程序存儲器地址空間是64K字,可以用累加器 的低16位尋址;對C5402有擴展程序存儲空間(尋 址空間為1M),則用累加器的低20位尋址; 指令執(zhí)行周期為 5 cycle; 2)指令語法: READA Smem ; Smem=Pmem(A) WRITA Smem ; Pmem(A)=Smem,DSP54.37,4。直接尋址 1)定義: 由ST0(80bit)=DP(CPL=0)或SP(CPL=1)作 為基地址,指令(opcode)中的

5、低7位作為偏移地址, 共同構(gòu)成16位數(shù)據(jù)存儲器地址(dmad); CPL=0: 15 9 8 0 15 8 7 6 0 ST0 指令碼 157 6 0 數(shù)據(jù)存儲器地址(dmad) CPL=1 : 15 0,Opcode 0 dma,DP,Value from the SP,0 0 0 0 0 0 0 0 0 Value from the IR(dma ),15 7 6 0,9-bit DP 7-bit dma,+,16-bit Data Memory Address, 偏移地址值用符號 表示;,DSP54.38,2)特點 9位數(shù)據(jù)頁面指針,涵蓋512頁面,每頁128字可以隨機訪問; 是一個單-

6、字單-周期操作; 頁面尋址DP和堆棧指針尋址SP,兩者只能選擇其中之一, 由ST0(14-bit)=CPL位決定,可以用命令: RSBX CPL ;CPL=0,允許頁面指針DP尋址 SSBX CPL ; CPL=1,允許堆棧指針SP尋址 復位時: CPL=0; 若同時要快速、隨機訪問100個左右的變量,直接尋址是 有用的, (若無速度要求,可以用絕對尋址),DSP54.39, 頁面指針尋址(DP)用得比較多。但在結(jié)構(gòu)化編程C語言 環(huán)境中,用堆棧指針尋址(SP), 此時要設CPL=1; 3)頁面指針(DP)尋址舉例(教材p.34),.data x: .word 1000 y: .word 500

7、 .text RSBX CPL LD #x, DP LD x, A ADD y, A,Addr. Data 0180 0001 x: 01FF 1000 y: 0200 0500 ,DP 0 0 3 0 0 3 0 0 3,ACC A 00 0000 1000 00 0000 1001,結(jié)果不對,Why?,DSP54.310,4)把數(shù)據(jù)置于同一頁面方法: 在匯編源文件中設置,.mmregs .def start .data Tbl .word 1000 .word 500 .bss x, 2, 1 y: .set x+1 .text start MVPD Tbl, *(x) MVPD Tbl+

8、1, *(y) RSBX CPL LD #x, DP LD x, A ADD y, A .end,Addr. Data 0180 0001 x: 0200 1000 y: 0201 0500 ,DP 0 0 4 0 0 4 0 0 4,ACC A 00 0000 1000 00 0000 1500,注意呵, 這里的1!,DSP54.311, 在.cmd文件中聲明:,.bss: RAM BLOCK=128,5)堆棧指針(SP)尋址舉例(教材p.34),.text SSBX CPL LD 1, A ADD 2, A, ,SP 0020 0100 0050 A000,ACC A 0 0 0 0 0

9、0 0 1 0 0 0 0 0 0 0 0 0 1 5 0,DSP54.312,5。間接尋址 1)定義: 根據(jù)8個輔助寄存器(AR0AR7)中定義的任何一 個寄存器給出的16-bit地址進行尋址; 這是DSP最具特色的尋址方式,它是用硬件來實現(xiàn) 數(shù)據(jù)存儲器地址指針; 用符號 “” 表示間接尋址; 絕對尋址實際上也是運用了間接尋址的硬件; 2)特點: 尋址方式靈活:可以從單條指令中讀(或?qū)懀┮粋€ 操作數(shù)、讀兩個操作數(shù)、讀和寫兩個順序操作數(shù)等; 兩個輔助寄存器算術運算單元(ARAU0和ARAU1) 可以進行16-bit無符號算術運算,從而實現(xiàn)各種靈活 的尋址功能;,DSP54.313, AR0主要

10、用來作為尋址下標值處理,從而可以任意改 變順序變址長度; 主要用于訪問數(shù)組、表格等順序變址的尋址方式; 具有DSP運算中經(jīng)常用到的循環(huán)尋址、碼位到序 (例卷積、相關、FFT)等特殊尋址功能; 3)單數(shù)據(jù)存儲器(Smem)操作數(shù)的指令代碼格式: 15 8 7 6 3 2 0,OPCODE 1 MOD ARP,用作尋址的ARx指示,15種間接尋址模式指示 1表示間接尋址(0表示絕對尋址),DSP54.314,4)單數(shù)據(jù)存儲器(Smem)操作數(shù)間接尋址類型 參考教材p.35表113,無修改 *ARn addr.=ARn 用后增減 *ARn+ addr.=ARn, ARn=ARn+1 *ARn - a

11、ddr.=ARn, ARn=ARn -1 帶下標增減 *ARn+0 addr.=ARn, ARn=ARn+AR0 *ARn 0 addr.=ARn, ARn=ARn AR0 循環(huán)增減 *ARn+% addr.=ARn, ARn=circ(ARn+1) *ARn -% addr.=ARn, ARn=circ(ARn -1) *ARn+0% addr.=ARn, ARn=circ(Arn+AR0) *ARn 0% addr.=ARn, ARn=circ(ARn AR0) 倒位序 *ARn+0B addr.=ARn, ARn=B(ARn +AR0) *ARn -0B addr.=ARn, ARn=B

12、(ARn AR0) 先修改 *ARn(lk) addr.=ARn+lk, ARn=ARn *+ARn(lk) addr.=ARn+lk, ARn=ARn+lk *+ARn(lk)% addr.=circ(ARn+lk), ARn=circ(ARn+lk) *+ARn addr.=ARn+1, ARn=ARn+1(只用來寫) 絕對尋址 *(lk) addr.=lk,DSP54.315,5)倒位序?qū)ぶ罚裕?6)循環(huán)尋址 在DSP中的卷積、相關等運算都用到緩沖存儲區(qū),它相當 數(shù)據(jù)滑窗:,x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 , R=8, 循環(huán)緩沖區(qū)保持數(shù)據(jù)不動

13、,每次更新最老的數(shù)據(jù),而指針 移動;,x0 x1 x7 x2 x6 x3 x5 x4,x8 x1 x7 x2 x6 x3 x5 x4,AR2,AR2,DSP54.316,h0 h1 h2 h3 h4 h5 h6 h7,x7 x6 x5 x4 x3 x2 x1 x0,x7 x6 x5 x4 x3 x2 x1 x8,x7 x6 x5 x4 x3 x2 x9 x8,循環(huán)緩沖區(qū),h:,AR4,x:,AR3,AR3,AR3,低,高,循環(huán)緩沖區(qū)的基址必須對準2NR 即基地址的低N個有效位必須是 0 例:R=8,則:N=4 起始地址:(xxxx xxxx xxxx 0000)2,DSP54.317, 一個例

14、子, STM #h+7, AR4 STM #x+7, AR3 STM #8, BK STM # -1, AR0 LD #x, DP PORTR PA1, x FIR: RPTZ A, #7 MAC *AR3+0%, *AR4+0%, A STH A, *AR3 PORTW *AR3, PA0 BD FIR PORTR PA1, *AR3+0% ,DSP54.318, 循環(huán)尋址要點(見講義 p.120) 邊界對齊 2N 的方法:偽指令 .align 的應用(見講義 p.135) 在.asm 文件中定義:, 在.cmd文件中定義:,x DARAM align 16 PAGE 1 h DARAM a

15、lign 16 PAGE 1,. align 16 x: . usect “x”, 8 . align 16 h: . usect “h”, 8,x: . usect “x”, 8 h: . usect “h”, 8,DSP54.319,7) 雙數(shù)據(jù)存儲器操作數(shù)的尋址方式 定義:一條指令同時完成兩個讀或一個讀并行一個寫; 這些指令只有一個字長,且只能以間接尋址方式工作; 雙操作數(shù)指令舉例:,ADD Xmem, Ymem, dst ; dst=Xmem16+Ymem16 MPY Xmem, Ymem, dst ; dst=XmemYmem, T=Xmem MAC Xmem, Ymem, src ,dst ; dst=src+XmemYmem MVDD Xmem, Ymem, ; Ymem=Xmem FIRS Xmem, Ymem, pmad ; B=B+Apmad, ; A=(Xmem+Ymem)16 LMS X

溫馨提示

  • 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

提交評論