




已閱讀5頁,還剩30頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
書名:數字信號處理技術及其應用 ISBN:7-111-16016-9 作者:劉麗鈞 出版社:機械工業出版社 本書配有電子課件,第5章 匯編語言程序設計舉例: 5.1 數據塊傳送 例1:將數組X5=1,2,3,4,5初始化 .data TAL: .word 1,2,3,4,5 .sect “.vectors” B START .bss x,5 .text START: STM #x,AR5 RPT #4 MVPD TAB,*AR5+,例2:編寫一段程序將數據存儲器中的數組X20復制到 數組Y20中。 .bss x,20 .bss y,20 STM #x,AR2 STM #y,AR3 RPT #19 MVDD AR2+,AR3+,5.2 加減法和乘法運算 例3:編寫完成 Z=X+Y-W的功能 LD x,A;直接尋址 ADD y,A SUB w,A; A=A-w STL A, z 例4:編程實現 y=mx+b 的功能 LD m,T MPY x,A ADD b,A STL A, y,例5:編寫實現 y=x1a1+x2 a2的功能 LD x1,T MPY a1,B LD x2,T MAC a2,B STL B, y STH B, y+1,例6:找出y=aixi(i=1,2,3,4)中乘機項aixi的最大值, 并存入累加器A中。 STM #a,AR1 STM #x,AR2 STM #2,AR3 LD *AR1+,T MPY *AR2+,A Loop1: LD *AR1+,T MPY *AR2+,B MAX A BANZ loop1,*AR3-,5.3 重復操作 例7:對一個數組初始化:X5=0,0,0,0,0 .bss x,5 STM #x,AR1 LD #0,A RPT #4 STL A,*AR1+ 或采用如下方法: .bss x,5 STM #x,AR1 RPTZ A, #4 STL A,*AR1+ 注意:執行重復操作時不響應任何中斷,例8:對數組X5中的每個元素加1 .bss x,5 Begin: LD #1,16,B STM #4,BRC STM #X,AR4 RPTB next-1 ADD *AR4,16,B,A STH A,*AR4+ Next: LD #0,B ,5.4 程序的控制與轉移 例9:RC TC CC sub,BNEQ BC new,AGT,AOV 例10:計算 y= xi(i=15) .bss x,5 .bss y,1 STM #x,AR1 STM #4,AR2 LD #0,A Loop:ADD *AR1+,A BANZ loop,*AR2- STL A,y,例11: STM #5,AR1 STM #10,AR0 Loop: *AR1+ CMPR LT,AR1;若(AR1)(AR0),則TC=1 BC loop,TC;若TC=1,則轉LOOP,5.5 堆棧的使用方法 在數據RAM空間開辟一個堆棧區,設置如下: Size .set100 Stack .usect”STK”,size STM #stack+size,SP ,例12:編寫實現方程y=mx+b的程序,單操作數法: LD m,T MPY x,A ADD b,A STL A, y,雙操作數法: MPY *AR2,*AR3,A ADD b,A STL A, y,5.6 雙操作數乘法,例13:編寫完成 y=aixi(i=120),采用單操作數方法: LD #0,B STM,#a,AR2 STM #x,AR3 STM #19,BRC RPTB done-1 LD *AR2+,T 3T MPY *AR3+,A ADD A,B Done:STH B, y STL B, y+1,采用雙操作數的方法: LD #0,B STM,#a,AR2 STM #x,AR3 STM #19,BRC RPTB done-1 2T MPY *AR2+,AR3+,A ADD A,B Done:STH B, y STL B, y+1,例14:進一步優化例13的程序: STM #x,AR2 STM #a,AR3 RPTZ A,#19 MAC *AR2+,*AR3+,A STH A,y STL A, y+1,例15 計算 Z32=X32+Y32,標準運算 LD xhi, 16,A ADDS xho,A ADD yhi,16,A ADDS yho,A STH A,zhi STL A,zho (6個字,6個T),長字運算 DLD xhi,A DADD yhi ,A DSTA,zhi (3個字,3個T),除DST指令(存儲32位數要用E總線2次,需2個機器周期)外, 都是單周期指令,也是在單個周期內同時利用C總線和D總線, 得到32位操作數。,5.7 長字運算和并行運算,并行運算指令有4種:并行加載和乘法指令,并行加載和存 儲指令,并行存儲和乘法指令,并行存儲和加/減法指令。,例16:編寫計算 和的程序段 .bss x,3 .bss d,3 STM #x,AR5 STM #d,AR2 LD #0,ASM ADD *AR5+,16,A ST *AR5+,16,A |LD *AR2+,B ADD *AR2+,16,B STH B,*AR2,x,y,z,e,d,f,AR5,AR2,例 編寫計算Z64=W64+X64-Y64 的程序段 W、X、Y和結果Z都是64位,它們都由兩個32位的長字組成。利用長字指令完成位數的加減法,W3 w2 w1 w0 (W64 ) x3 x2 C x1 x0 (X64 ) y3 y2 C y1 y0 (Y64 ) z3 z2 z1 z0 ( Z64 ),低32 位相加產生進位C 低32位相減產生借位C,程序段: DLD w1,A ; A=w1w2 DADD x1,A ; A=w1w0+x1x0,產生進位C DLD w3,B ; B=w3w2 ADDC x2,B ; B=w3w2+x2+C ADD x3,16,B ; B=w3w2+x3x2+C DSUB y1,A ; A=w1w0+x1x0-y1y0,產生借位C DST A,z1 ; z1z0=w1w0+x1x0-y1y0 SUBBy2,B ; B=w3w2+x3x2+C-y2-C SUB y3,16,B ; B=w3w2+x3x2+C-y3y2-C DST B,z3 ;z3z2=w3w2+x3x2+C-y3y2-C,32位乘法運算 乘法算式如下: x1 x0 S U y1 y0 S U x0y0 UU y1x0 SU x1y0 SU Y1x1 SS w3 w2 w1 w0 S U U U 其中,S-帶符號數,U-無符號數,例18 :編寫計算W64=X32*Y32 的程序段 STM #x0,AR2 STM #y0,AR3 LD *AR2,T ;T=x0 MPYU AR3+,A ;A=uy0*ux0 STL A w0 ;w0=ux0*uy0 LD A,-16,A ;A=A16 MACSU *AR2+,*AR3-,A ;A+=y1*ux0 MACSU *AR3+,*AR2,A ;A+=x1*uy0 STL A,w1 ;w1=A LD A,-16,A ;A=A16 MAC *AR2,*AR3,A ;A+=x1*y1 STL A,w2 ;w2=A的低16位 STL A,w3 ;w3=A的高16位,5.8 小數運算,1. 小數的表示方法 C54X采用2的補碼小數,其最高位為符號位數值范圍從 -11,一個16位2的補碼小數的每一位權值為: 一個十進制小數乘以32768之后,將十進制整數部分轉換成十六進制數,就得到了這個十進制小數的2的補碼表示了。 注意:匯編語言程序中,不能直接寫入十進制小數。要定義 一個系數0.707,可以寫成:word 32768707/1000 不能寫成327680.707.,-1 1/2 1/4 1/8 2-15,2. 小數乘法與冗余符號位 出現冗余符號位是兩個帶符號數相乘,得到的乘積帶2個符號位,造成錯誤的結果。 解決冗余符號位的方法:在程序中設定狀態寄存器ST1中的FRAT(小數方式)位為1,在乘法器將結果送至累加器時就能自動的左移一位,自動地消去了兩個帶符號數相乘時產生的冗余符號位。 注意: 小數乘法編程時,應事先設置FRCT位: SSBX FRCT MPY AR2, *AR3,A STH A, Z,例19 編寫計算 y=ai*xi( i=14) 的程序 其中數據均為小數: a1=0.1 a2=0.2 a3=-0.3 a4=0.4 x1=0.8 x2=0.6 a3=-0.4 x4=-0.2 .bss x , 4 .bss a , 4 .bss y , 1 .data Table: .word 1*32768/10 .word 2*32768/10 .word -3*32768/10 .word 4*32768/10 .word 8*32768/10 .word 6*32768/10 .word -4*32768/10 .word -2*32768/10 .text,Start: SSBX FRCT STM #x , AR1 RPT #7 MVPD table , *AR1 STM #x ,AR2 STM #a , AR3 RPTZ A , #3 MAC AR2+, AR3 , A STH A, y Done: B done,5.9 除法運算,C54X中沒有單周期的16位除法指令,利用一條條減法指令(SUBC),加上重復指令RPT #15就可實現兩個無符號的除法運算。 SUBC Smem ,src ;(src)-(Smem)15ALU輸出端 ;如果ALU輸出端0, 則(ALU輸出 端)1+1src ;否則(src)1src 除法運算有兩種情況:,1. |被除數|除數|,商為小數 例20: 編寫0.4(0.8)的程序段 .bss num , 1 .bss den , 1 .bss quot , 1 .data Table : .word 4*32768/10 ;0.4 .word -8*32768/10 ;-0.8 .text Start : STM #num ,AR1 RPT #1 MVPD table ,*AR1 ;傳送2個數據至分子、分母單元 LD den ,16,A ;將分母移到累加器A(3116) MPYA num ;(num)*(A(3216)B, 獲取商的符號(在累加器B中) ABS A ;分母取絕對值,STH A,den ;分母絕對值存放原處 LD num ,16 ,A ;分子A(3216) ABS A ;分子取絕對值 RPT #14 ;15次減法循環,完成除法 SUBC den , A ;如果B0(商是負數),則需要變號 XC 1, BLT NEG A STL A,quot ;保存商,注意:SUBC指令僅對無符號數進行操作,因此事先必須對除數和被除數取絕對值。利用乘法操作,獲得商的符號,最后通過條件執行指令給商加上適當的符號。,2. |被除數|除數| ,商為整數 與例 20,除輸入數據外,僅有下列改動 LD num ,16 ,A 改成 LD num ,A RPT #14 改成 RPT #15,5.10 浮點運算,為了擴大數據的范圍和精度,往往需要采用浮點運算。C54X雖然是個定點DSP器件,但它支持浮點運算。 1. 浮點數的表示方法 浮點數用 尾數和指數組成,定點數=尾數2-指數 浮點數的尾數和指數可正可負,均用補碼表示。指數范圍-831。 2. 定點數浮點數 通過3條指令實現 (假設定點數已在累加器A中) 1)EXP A 例22 EXP A 執行前 執行后 A=FF FFFF FFCB A=FF FFFF FFCB T= 0000 T= 0019(25),例23 EXP B 執行前 執行后 A=07 8543 2105 A=FF 8543 0000 T= 0007 T= FFFC(-4) 2) ST T, EXPONENT 這條緊接在XEP后的指令是將保存在T寄存器中的指數存放到數據寄存器的指數單元。 3)NORM A 例24 : NORM A 執行前 執行后 A=FF FFFF F001 A=FF 8008 0000
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 省中醫院護理查房
- 重慶應用技術職業學院《中藥炮制學》2023-2024學年第一學期期末試卷
- 鐵嶺師范高等專科學校《人際溝通與演講》2023-2024學年第一學期期末試卷
- 《高效專利檢索策略》課件
- 蘭州交通大學《圖案創意與應用》2023-2024學年第二學期期末試卷
- 云南民族大學《動畫與游戲中的音樂素材》2023-2024學年第二學期期末試卷
- 濮陽科技職業學院《大學英語精讀2》2023-2024學年第一學期期末試卷
- 樁板墻噴漿施工方案
- 石家莊信息工程職業學院《水文氣象學》2023-2024學年第二學期期末試卷
- 西安高新科技職業學院《數學建模Ⅱ》2023-2024學年第二學期期末試卷
- 學前教育基礎知識課件 主題3 學前兒童全面發展教育
- 小學數學跨學科主題學習的系統設計與實施
- 2025中考化學詳細知識點
- 2025屆遼寧省錦州市凌海市市級名校中考化學模擬試卷含解析
- 導數大題題型分類
- 2025陜煤集團榆林化學限責任公司招聘596人高頻重點模擬試卷提升(共500題附帶答案詳解)
- DB23-T 3919-2024 大跨鋼結構技術標準
- 2024年上海奉賢區招錄儲備人才筆試真題
- 2025河南中煙許昌卷煙廠招聘10人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年中國國新基金管理有限公司招聘筆試參考題庫含答案解析
- 2025年福建泉州發展集團有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論