dsp 基本算数运算.pdfVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

实验一:基本算数运算

1、实验目的和要求

加、减、乘、除是数字信号处理中最基本的算术运算。本实验学习使用定点DSP实现

16位定点加、减、乘、除运算的基本方法和编程技巧。本实验的演示文件为

exer1.out。

2、实验原理

1)定点DSP中的数据表示方法

在DSP中一个16进制的数可以表示不同的十进制数,或

者是整数,或者是小数(如果表示小数,必定小于1),但仅仅是在做整数乘除或小数

除时,系统对它们的处理才是有所区别的,而在加减运算时,系统都当成整数来处

理。

2)实现16位定点加法

在本实验中,我们使用下列代码来说明加法运算:

ldtemp1,a;将变量temp1装入寄存器A

addtemp2,a;将变量temp2与寄存器A相加,结果放入A中

stla,add_result;将结果(低16位)存入变量add_result中。

注意,这里完成计算temp3=temp1+temp2,我们没有特意考虑temp1和temp2是整数还

是小数,在加法和下面的减法中整数运算和定点的小数运算都是一样的。

3)实现16位定点减法

在本实验中,我们使用下列代码来说明减法运算:

stm#temp1,ar3;将变量temp1的地址装入ar3寄存器

stm#temp3,ar2;将变量temp3的地址装入ar2寄存器

sub*ar2+,*ar3,b;将变量temp3左移16位同时变量temp1也左移16位,然后

;相减,结果放入寄存器B(高16位)中,同时ar21。

sthb,sub_result;将相减的结果(高16位)存入变量sub_result。

4)实现16位定点整数乘法

在本实验中,我们使用下列代码来说明整数乘法运算:

1/6

rsbxFRCT;清FRCT标志,准备整数乘

ldtemp1,T;将变量temp1装入T寄存器

mpytemp2,a;完成temp2*temp1,结果放入A寄存器(32位)

例如,当temp1=1234H(十进制的4660),temp2=9876H(十进制的-26506),乘法

结果在A寄存器中为0F8A343F8H(十进制的-123517960)。这是一个32位的结果,

需要两个内存单元来存放结果:

stha,mpy_I_h;将结果(高16位)存入变量mpy_I_h

stla,mpy_I_l;将结果(低16位)存入变量mpy_I_l

当temp1=10H(十进制的16),temp2=05H(十进制的5),乘法结果在A寄存器中为(十进制的80)。对于这种情况,仅仅需要保存低16位即可:

stla,mpy_I_l;将结果(低16位)存入变量mpy_I_l

5)实现16位定点小数乘法

在本实验中,我们使用下列代码来说明小数乘法运算:

ssbxFRCT;FRCT=1,准备小数乘法

ldtemp1,16,a;将变量temp1装入寄存器A的高16位

mpyatemp2;完成temp2乘寄存器A的高16位,结果在B中,同时

;将temp2装入T寄存器

sthb,mpy_f;将乘积结果的高16位存入变量mpy_f

例如,temp1=temp2=4000H(十进制的0.5),两数相乘后结果(十进制的

22=0.25)。再如,temp1=0ccdH(十进制的0.1),temp2=0599aH(十进制的0.7),

两数

相乘后B寄存器的内容为08f5f0a4H(十进制的0.07000549323857)。如果仅保存结果

高16位08f5H(十进制的0.06997680664063)。有时为了提高精度,可以使用RND或

使

用MPYR指令对低16位做四舍五入的处理。

6)实现16位定点整数除法

详细代码如下:

ldtemp1,T;将被除数装入T寄存器

2/6

mpytemp2,A;除数与被除数相乘,结果放入A寄存

ldtemp2,B;将除数temp2装

文档评论(0)

办公服务吧 + 关注
实名认证
服务提供商

专注于文案的个性定制,修改,润色等。本人已有16年相关工作经验,具有扎实的文案功底,可承接演讲稿,读后感,任务计划书,营销方案等方面的工作。欢迎您的咨询~~

1亿VIP精品文档

相关文档