DSP C5400軟件基礎(chǔ)_第1頁
DSP C5400軟件基礎(chǔ)_第2頁
DSP C5400軟件基礎(chǔ)_第3頁
DSP C5400軟件基礎(chǔ)_第4頁
DSP C5400軟件基礎(chǔ)_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1第三章 DSP軟件基礎(chǔ) 匯編指令集 數(shù)據(jù)尋址模式 程序?qū)ぶ纺J?流水線 2 數(shù)據(jù)尋址模式 尋址方式 立即尋址 絕對尋址 累加器尋址 直接尋址 間接尋址 存儲器映射寄存器尋址 堆棧尋址3 數(shù)據(jù)尋址模式(續(xù)) 立即尋址v 以指令中立即數(shù)為操作數(shù) v 采用號作為前綴來表示立即數(shù) v 立即數(shù)的長度取決于指令的類型 3位或5位數(shù)8位數(shù)9位數(shù)16位數(shù)LDFRAMELDRPTLDADDADDMANDANDMBITFCMPMLDMACORORMRPTRPTZSTSTMSUBXORXORM例:ld 0 x80h,A 4 數(shù)據(jù)尋址模式(續(xù)) 絕對尋址v 對數(shù)據(jù)存儲器絕對尋址 mvdk Smem, dmad mv

2、dm dmad, MMR mvkd dmad, Smem mvmd MMR, dmad例:mvkd SAMPLE, *AR5 5v 對程序存儲器絕對尋址 firs Xmem, Ymem, pmad macd Smem, pmad, src macp Smem, pmad, src mvdp Smem, pmad mvpd pmad, Smem 數(shù)據(jù)尋址模式(續(xù)) 絕對尋址例:mvpd TABLE, *AR7 6 數(shù)據(jù)尋址模式(續(xù)) 絕對尋址v 對I/O空間尋址 portr PA, Smem portw Smem, PA v 使用*(lk)尋址 ld *(BUFFER), A 例:portr F

3、IFO, *AR5 注:此類型指令無法與單循環(huán)指令配合使用 7 數(shù)據(jù)尋址模式(續(xù)) 累加器尋址v 以累加器中數(shù)值為地址訪問程序存儲器v 相關(guān)指令 reada Smem writa Smemv 采用單循環(huán)指令與上述指令配合時,累加器A的數(shù)值會自動增加,因此可以方便的實現(xiàn)程序空間和數(shù)據(jù)空間數(shù)據(jù)的交換 8 數(shù)據(jù)尋址模式(續(xù)) 直接尋址 v 數(shù)據(jù)空間中的相對尋址 v 指令中包含7位數(shù)據(jù)存儲器地址作為地址偏移量 v 另9位信息由數(shù)據(jù)頁指針DP或堆棧指針SP指定 v 較利用絕對尋址的指令短 v ST1中的CPL位決定使用DP還是SP9DP(9)來自指令寄存器IR(dma)低 7 位SP(16)數(shù)據(jù)總線 D

4、B(16)數(shù)據(jù)總線 EB(16)0 EADP偏移量(IR)1 EASP偏移量(IR)DAB(16)(讀)EAB(16)(寫)或 CAB(32 位讀)CPL CPLEA: 有效地址IR: 指令寄存器數(shù)據(jù)地址發(fā)生器 數(shù)據(jù)尋址模式(續(xù)) 直接尋址的地址形成 10 數(shù)據(jù)尋址模式(續(xù)) 間接尋址 v 利用輔助寄存器中數(shù)值作為絕對地址 v 主要用于按某種固定方式對數(shù)據(jù)空間的連續(xù)訪問 v 修改方式可以為后加、后減、特定步長v 尋址方式最為靈活 11 數(shù)據(jù)尋址模式(續(xù)) 間接尋址 v 按輔助寄存器內(nèi)地址更新方式分類v 按尋址的輔助寄存器數(shù)目來分類線性尋址 循環(huán)尋址 比特翻轉(zhuǎn)尋址 單數(shù)據(jù)(Smem)方式 雙數(shù)據(jù)

5、(Dmem)方式 12 數(shù)據(jù)尋址模式(續(xù)) 單數(shù)據(jù)間接尋址 AR0(16)索引 AR1(16) AR2(16) AR5(16) AR4(16) AR3(16) AR6(16) AR7(16) BK(16) ARP(3) 數(shù)據(jù)總線 DB(16) 數(shù)據(jù)總線 EB(16) ARAU0O ARAU1 AR0 BK lk 1 +/- % 0 B EBA(16) (寫)或 CBA(16) (32 位讀) AR0 BK 1 +/- % 0 DBA(16) (讀) 13 數(shù)據(jù)尋址模式(續(xù)) 間接尋址中輔助寄存器設(shè)置和修改 v 用STM指令加載一個立即數(shù) v 通過寫存儲器映射寄存器方式經(jīng)數(shù)據(jù)總線EB加 載一個立

6、即數(shù) v 用修改輔助寄存器的指令MAR修改其內(nèi)容 v 用包含間接尋址的指令修改其內(nèi)容 v 對BANZD指令中的循環(huán)計數(shù)器進行修改 14 數(shù)據(jù)尋址模式(續(xù)) 單數(shù)據(jù)間接尋址形式*ARx*ARx- *ARx+ *+ARx *ARx-0B *ARx-0 *ARx+0 *ARx+0B 操作數(shù)句法功能說明addr=ARxaddr=ARxARx=ARx-1addr=ARxARx=ARx+1addr=ARx+1ARx=ARx+1addr=ARxARx=B(ARx-AR0)addr=ARxARx=ARx-AR0addr=ARxARx=ARx+AR0addr=ARxARx=B(ARx+AR0)ARx的內(nèi)容為數(shù)據(jù)

7、存儲器地址。訪問后,ARx中的地址減1個單位。 訪問后,ARx中的地址加1個單位。 訪問前,ARx中的地址加1個單位。 訪問后,從ARx中按比特翻轉(zhuǎn)尋址的方式減去AR0。訪問后,從ARx中減去AR0。 訪問后,在ARx中加上AR0。 訪問后,在ARx中按比特翻轉(zhuǎn)尋址的方式加上AR0。15 數(shù)據(jù)尋址模式(續(xù)) 單數(shù)據(jù)間接尋址形式(續(xù)) 訪問后,從ARx中按循環(huán)尋址方式減去1個單位。訪問后,從ARx中按循環(huán)尋址方式減去AR0。訪問后,在ARx中按循環(huán)尋址方式加上1個單位。訪問后,在ARx中按循環(huán)尋址方式加上AR0。ARx加上16位長偏移量作為地址,但ARx不變。ARx加上16位長偏移量作為地址,并

8、將該結(jié)果作為ARx的數(shù)值。ARx按循環(huán)尋址方式加上16位長偏移量作為地址并用該結(jié)果更新ARx。*ARx-% *ARx-0% *ARx+% *ARx+0% *ARx(lk) *+ARx(lk) *+ARx(lk)% addr=ARxARx=circ(ARx-1)addr=ARxARx=circ(ARx-AR0)addr=ARxARx=circ(ARx+1)addr=ARxARx=circ(ARx+AR0)addr=ARx+lkARx=ARxaddr=ARx+lkARx=ARx+lkaddr=circ(ARx+lk)ARx=circ(ARx+lk) 操作數(shù)句法功能說明16 數(shù)據(jù)尋址模式(續(xù)) 循環(huán)

9、尋址元素 0元素 1元素 R-1BK=R正向反向17順序順序方式比特翻轉(zhuǎn)方式比特翻轉(zhuǎn)順序0123456789101112131415000000010010001101000101011001111000100110101011110011011110111100001000010011000010101001101110000110010101110100111011011111110841221061419513311715 數(shù)據(jù)尋址模式(續(xù)) 比特翻轉(zhuǎn)尋址(AR0的值為數(shù)據(jù)長度的一半) 18 數(shù)據(jù)尋址模式(續(xù)) 雙數(shù)據(jù)間接尋址形式v 同時采用了兩個輔助寄存器來尋址,分別用 Xmem和Ym

10、em表示 v 采用雙數(shù)據(jù)尋址的指令都是一個字長 v C5400中只能選擇AR2AR5這4個輔助寄存器來進行雙數(shù)據(jù)的尋址 v Xmem為讀操作時與DB相連,而Ymem則與CB相連 v 地址調(diào)整方式只能使用*ARx、*ARx+、*ARx-和*ARx+0%四種方式 19 數(shù)據(jù)尋址模式(續(xù)) 存儲器映射寄存器尋址 v 直接尋址方式 v 間接尋址方式 指令執(zhí)行后,輔助寄存器的高9位將清0 所有的位都為 09來自指令寄存器IR 或當前輔助寄存器的低 7 位71616 位存儲器映象寄存器地址20 數(shù)據(jù)尋址模式(續(xù)) 存儲器映射寄存器尋址指令 ldm MMR, dst mvdm dmad, MMR mvmd

11、MMR, dmad mvmm MMRx, MMRy popm MMR pshm MMR stlm src, MMR stm #lk, MMR 21 數(shù)據(jù)尋址模式(續(xù)) 堆棧尋址 v PSHD壓入一個數(shù)據(jù)存儲器單元的數(shù)據(jù)到堆棧 v PSHM壓入一個存儲器映射寄存器數(shù)據(jù)到堆棧 v POPD從堆棧彈出一個數(shù)據(jù)存儲器單元的數(shù)據(jù) v POPM從堆棧彈出一個存儲器映射寄存器數(shù)據(jù) 22 程序?qū)ぶ纺J?程序地址的產(chǎn)生 程序地址產(chǎn)生邏輯(PAGEN)的結(jié)構(gòu) 程序地址產(chǎn)生邏輯 PAGENPCRCBRCRSAREA重復(fù)操作寄存器23 程序?qū)ぶ纺J?續(xù)) 程序地址的產(chǎn)生 連續(xù)地址情況下 跳轉(zhuǎn)、調(diào)用、返回、中斷或循環(huán)等

12、情況下 擴展程序計數(shù)器(XPC) 24 匯編指令集 指令系統(tǒng)概述v 指令集的符號和縮寫v 指令系統(tǒng)的操作符v 指令系統(tǒng)的匯編語法語法、操作數(shù)、機器碼、執(zhí)行結(jié)果、狀態(tài)位的影響、指令字長、指令執(zhí)行的周期數(shù)、單指令重復(fù)執(zhí)行情況、流水線沖突情況25 Term Operand nature and access mode Smem Data memory accessed by any of addressing mode. pmad Absolute addressing of program memory dmad Absolute addressing of data memory Ymem Da

13、ta memory accessed only by indirect addressing (AR2 through . AR5 only). Xmem Data memory accessed only by indirect addressing (AR2 through AR5 only). PA 16-bit port (I/O) immediate address (0 - 65,535) src Source accumulator (A or B) dst Destination accumulator (A or B) k,lk Short and long immediat

14、e addressing (#constant) 26 匯編指令集 指令的分類 算術(shù)運算指令 邏輯運算指令 程序控制操作指令 加載和存貯操作指令27 算術(shù)運算指令 加法指令 ADD Smem,src src = src + Smem 減法指令 乘法指令 SUB Smem,TS,src src = src Smem TSMPY Xmem, Ymem, dst dst = Xmem * Ymem, T = Xmem 乘加和乘減指令 MAC Smem,src src = src + T * Smem 281、加法指令、加法指令29303132333435 邏輯運算指令 邏輯與指令A(yù)ND Smem,s

15、rc Src = src & Smem 邏輯或指令 異或指令OR Smem,src src = src | Smem XOR Smem,src Src = src Smem 移位指令ROL src 累加器帶進位位循環(huán)左移 測試指令 BIT Xmem, BITC TC = Xmem(15 BITC)36373839 程序控制操作指令 跳轉(zhuǎn)指令 BACCD src PC = src(150) 調(diào)用指令 中斷指令 返回指令 RETD PC = SP+CALAD src-SP = PC + 1 PC = src(150) INTR K-SP = PC + 1PC = IPTR(157) + K

16、 2,INTM = 1 40 程序控制操作指令(續(xù)) 重復(fù)指令 RPT Smem 重復(fù)執(zhí)行單條指令,RC = Smem 堆棧操作指令 其它程序控制指令 POPD Smem Smem = SP+ NOP 空操作 41條件指令中的各種條件42多條件指令中的條件組合第一組第二組A 類B 類A 類B 類C 類EQOVTCCBIONEQNOVNTCNCNBIOLT LEQ GT GEQ 434445464748 加載和存貯操作指令 加載指令 DLD Lmem, dst dst = Lmem 存儲指令 條件存儲指令 并行加載和存儲指令 ST src, Ymem | LD Xmem, dst ST T, S

17、mem Smem = TSRCCD Xmem, cond If (cond) Xmem = BRC49 加載和存貯操作指令(續(xù)) 并行加載和乘法指令 LD Xmem,dst|MAC Ymem,dst_ 并行存儲和加/減指令 并行存儲和乘法指令 其它存儲和加載指令 MVDD Xmem, Ymem Ymem = XmemST src, Ymem | ADD Xmem, dst ST src, Ymem | MAC Xmem, dst 5051525354555657 加載和存貯操作指令(續(xù)) 存儲器-寄存器mvdkld smem, Tltd, mvmd寄存器-存儲器mvkdst smem, Tmv

18、dm條件存儲存儲器-累加器ld, ldureada累加器-存儲器sth, stlwrita寄存器-累加器ldm累加器-寄存器stlm58 加載和存貯操作指令(續(xù)) 存儲器-存儲器mvddmvpdmvdpreadawrita寄存器-寄存器mvmmIO讀寫portrportw59 指令的重復(fù)執(zhí)行 在重復(fù)執(zhí)行時可以變成單周期指令的多周期指令 FIRS 對稱FIR濾波MACD 帶延時乘并送結(jié)果到累加器 MVDK 把數(shù)據(jù)存儲器中的數(shù)據(jù)送到另一個數(shù)據(jù)存儲器READA 從程序存儲器中讀數(shù)并送到數(shù)據(jù)存儲器 不能重復(fù)執(zhí)行的指令 ADDM 加長常數(shù)到數(shù)據(jù)存儲器BD 無條件跳轉(zhuǎn)CALAD 調(diào)用累加器所指向的地址(子程序)60 流水線 六級指令流水線 取指譯碼訪問讀取執(zhí)行/寫將 PC 的內(nèi)容送至 PAB 總線 將讀取的內(nèi)容送入 IR,并進行解碼 從 DB

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論