DSP实验四 小数运算的实现.doc

DSP实验四 小数运算的实现.doc

ID:57687487

大小:21.50 KB

页数:2页

时间:2020-09-01

DSP实验四 小数运算的实现.doc_第1页
DSP实验四 小数运算的实现.doc_第2页
资源描述:

《DSP实验四 小数运算的实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验四小数运算一、实验目的1.掌握TMS320C54X中小数的表示和处理方法;2.掌握用汇编语言编写DSP程序的方法;3.熟悉CCS软件进行软件仿真。二、实验内容编写计算的程序。其中数据均为小数:a1=0.1a2=0.2a3=-0.3a4=0.2x1=0.8x2=0.6x3=-0.4x4=-0.2三、实验说明许多DSP芯片只支持整数运算,如果现在这些芯片上进行小数运算的话,定点小数运算应该是最佳选择了。两个16位整数相乘,乘积总是“相左增长”的,这意味着多次相乘后乘积将会很快超出定点器件的数据范围。而且要将32位乘积保存到

2、数据存储器,就要开销2个机器周期以及2个字的程序和RAM单元。并且由于乘法器都是16位相乘,因此很难在后续的递推运算中,将32位乘积作为乘法器的输入。然而,小数相乘,乘积总是“相右增长”的,这就合得超出定点器件数据范围的部分是我们不太感兴趣的部分。在小数乘法下,既可以存储32位乘积,也可以存储16位乘积,这就允许用较少的资源保存结果,也方便用于递推去处中。TMS320C54X用用2的补码表示小数,其最高位为符号位,数值范围为(-1-1)。2的补码小数表示方法:将十进制小数乘以32768,并将整数乘积转换成16进制数。正数:

3、乘以32768,整数转换成16进制数;负数:其绝对值乘以32768,整数转换成16进制数后取反加1。如0.5:乘以32768得16384,再转换成十六进制就得到4000H,这就是0.5的补码形式。如-0.5:绝对值乘以32768得16384,再转换成十六进制就得到C000H,这就是0.5的补码形式。在汇编语言程序中,由于不能直接写入十进制小数,因此若要定义一个小数0.707,则应该写成32768*707/1000。在进行小数乘法时,应事先设置状态寄存器ST1中的FRCT位(小数方式位)置1,这样在乘法器将结果传送至累加器时

4、就能自动地左移1位,从而自动消除两个带符号数相乘时产生的冗余符号位。使用语句:SSBXFRCT四、实验设备硬件:PC机软件:PC机操作系统win98及以上、CCS集成开发环境。五、实验步骤1在SIMULATOR方式下运行CCS软件;2新建一个工程;3编辑源程序文件;4向工程添加添加源文件;5编译、链接工程,如有错误则继续调试,直到完全正确生成out文件;6装载out文件运行;7查看内存单元的内容是否正确。注:实验报告要打印出运行结果即内存单元的内容汇编源程序:(可参考课本218页程序).title"dianxin.asm"

5、.mmregsstack.usect"stack",50H.bssa,4.bssx,4.bssy,1.dataSS.word32768*2/10,32768*3/10,-32768*3/10,32768*4/10.word32768*5/10,32768*5/10,32768*5/10,32768*5/10.globalstart.textstartSTM#0,SWWSRSTM#stack+50H,spSTM#a,AR1RPT#7MVPDSS,*AR1+CALLSUMendBendSUMSSBXFRCTSTM#a,AR2S

6、TM#x,AR3RPTZA,#3MAC*AR2+,*AR3+,ASTHA,*(y)RET.end运行程序后y的值为0x1EB7(即十进制的0.24)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。