基本算术运算

基本算术运算

ID:46808729

大小:195.05 KB

页数:12页

时间:2019-11-28

基本算术运算_第1页
基本算术运算_第2页
基本算术运算_第3页
基本算术运算_第4页
基本算术运算_第5页
资源描述:

《基本算术运算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、电子科技大学通信学院标准实验报告(实验)课程名称DSP设计与实践电子科技大学教务处制表电子科技大学实验报告学生姓名:学号:指导教师:向超实验地点:实验时间:一、实验室名称:科研楼B-341二、实验项目名称:基本算术运算三、实验学时:4四、实验原理:(1)定点DSP中数据表示方法C54X是16位的定点DSP。一个16位的二进制数既可以表示一个整数,也可以表示一个小数。当它表示一个整数时,其最低位(D0)表示,D1位表示,次高位(D14)表示。如果表示一个有符号数时,最高位(D15)为符号位,0表示正数,1表示负数。例如,07FFFH表示最大的正

2、数32767(十进制),而0FFFFH表示最大的负数-1(负数用2的补码方式显示)。当需要表示小数时,小数点的位置始终在最高位后,而最高位(D15)表示符号位。这样次高位(D14)表示,然后是,最低位(D0)表示。所以04000H表示小数0.5,01000H表示小数,而0001H表示16位定点DSP能表示的最小的小数(有符号)=0.000030517578125。在后面的实验中,除非有特别说明,我们指的都是有符号数。在C54X中,将一个小数用16位定点格式来表示的方法是用乘以该小数,然后取整。从上面的分析可以看出,在DSP中一个16进制的数可

3、以表示不同的十进制数,或者是整数,或者是小数(如果表示小数,必定小于1),但仅仅是在做整数乘除或小数乘除时,系统对它们的处理才是有所区别的,而在加减运算时,系统都当成整数来处理。(2)实现16定点加法C54X中提供了多条用于加法的指令,如ADD,ADDC,ADDM和ADDS。其中ADDS用于无符号数的加法运算,ADDC用于带进位的加法运算(如32位扩展精度加法),而ADDM专用于立即数的加法。ADD指令的寻址方式很多,其详细使用说明请参考《TMS320C54X实用教程》。在本实验中,我们使用下列代码来说明加法运算:ldtemp1,a;将变量t

4、emp1装入寄存器Aaddtemp2,a;将变量temp2与寄存器A相加,结果放入A中stla,add_result;将结果(低16位)存入变量add_result中。注意,这里完成计算temp3=temp1+temp2,我们没有特意考虑temp1和temp2是整数还是小数,在加法和下面的减法中整数运算和定点的小数运算都是一样的。(3)实现16位定点减法C54X中提供了多条用于减法的指令,如SUB,SUBB,SUBC和SUBS。其中SUBS用于无符号数的减法运算,SUBB用于带进位的减法运算(如32位扩展精度的减法),而SUBC为移位减,DS

5、P中的除法就是用该指令来实现的。SUB指令与ADD指令一样,有许多的寻址方式,其详细使用说明请参考《TMS320C54X实用教程》。在本实验中,我们使用下列代码来说明减法运算:stm#temp1,ar3;将变量temp1的地址装入ar3寄存器stm#temp3,ar2;将变量temp3的地址装入ar3寄存器sub*ar2+,*ar3,b;将变量temp3左移16位同时变量temp1也左移16位,然后;相减,结果放入寄存器B(高16位)中,同时ar2加1。sthb,sub_result;将相减的结果(高16位)存入变量sub_result。(4

6、)实现16定点整数乘法在C54X中提供了大量的乘法运算指令,其结果都是32位,放在A或B寄存器中。乘数在C54X的乘法指令很灵活,可以是T寄存器、立即数、存贮单元和A或B寄存器的高16位。有关乘法指令的详细使用说明请参考《TMS320C54X实用教程》。在C54X中,一般对数据的处理都当做有符号数,如果是无符号数乘时,请使用MPYU指令。这是一条专用于无符号数乘法运算的指令,而其它指令都是有符号数的乘法。在本实验中,我们使用下列代码来说明整数乘法运算:rsbxFRCT;清FRCT标志,准备整数乘ldtemp1,T;将变量temp1装入T寄存器

7、mpytemp2,a;完成temp2*temp1,结果放入A寄存器(32位)例如,当temp1=1234H(十进制的4660),temp2=9876H(十进制的-26506),乘法的结果在A寄存器中为0F8A343F8H(十进制的-123517960)。这是一个32位的结果,需要两个内存单元来存放结果:stha,mpy_I_h;将结果(高16位)存入变量mpy_I_hstla,mpy_I_l;将结果(低16位)存入变量mpy_I_l当temp1=10H(十进制的16),temp2=05H(十进制的5),乘法结果在A寄存器中为00000050H

8、(十进制的80)。对于这种情况,仅仅需要保存低16位即可:stla,mpy_I_l;将结果(低16位)存入变量mpy_I_l(5)实现16定点小数乘法在C54X中,

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

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

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