数字信号处理技术及其应用.ppt

上传人:max****ui 文档编号:14859473 上传时间:2020-07-31 格式:PPT 页数:35 大小:352KB
收藏 版权申诉 举报 下载
数字信号处理技术及其应用.ppt_第1页
第1页 / 共35页
数字信号处理技术及其应用.ppt_第2页
第2页 / 共35页
数字信号处理技术及其应用.ppt_第3页
第3页 / 共35页
资源描述:

《数字信号处理技术及其应用.ppt》由会员分享,可在线阅读,更多相关《数字信号处理技术及其应用.ppt(35页珍藏版)》请在装配图网上搜索。

1、书名:数字信号处理技术及其应用 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 #1

2、9 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

3、 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 n

4、ext-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.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

6、 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 AD

7、D 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

8、 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 ;

9、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 y1x

10、0 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+=

11、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. 小数乘法与冗余符号位 出现冗余符号位是两个带符号数相乘,

12、得到的乘积带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 .

13、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 除法运算,C5

14、4X中没有单周期的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

15、 : 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指令仅对无

16、符号数进行操作,因此事先必须对除数和被除数取绝对值。利用乘法操作,获得商的符号,最后通过条件执行指令给商加上适当的符号。,2. |被除数|除数| ,商为整数 与例 20,除输入数据外,仅有下列改动 LD num ,16 ,A 改成 LD num ,A RPT #14 改成 RPT #15,5.10 浮点运算,为了扩大数据的范围和精度,往往需要采用浮点运算。C54X虽然是个定点DSP器件,但它支持浮点运算。 1. 浮点数的表示方法 浮点数用 尾数和指数组成,定点数=尾数2-指数 浮点数的尾数和指数可正可负,均用补码表示。指数范围-831。 2. 定点数浮点数 通过3条指令实现 (假设定点数已在累

17、加器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 T= 0013 T= 0013(19),例25 : NORM B , A 执行前 执行后 A=FF FFFF F001 A=FF 4214 1414 B=21 0A0A 0A0A B=FF 4214 1414 T= FFF9 T= FFF9(-7) 注意:NORM指令不能紧跟在EXP指令的后面。 3. 浮点数定点数 将浮点数转化为定点数时,只要按指数值将其右移(指数为负数时左移)就行了。 4. 浮点数乘法举例 见书P229页例26,【例5.26】编写浮点乘法程序,完成x1x20.3(0.8)运算程序中保留10个数据存储单元:,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!