- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二基本算数运算
2.1 实验目的和要求
加、减、乘、除是数字信号处理中最基本的算术运算。DSP 中提供了大量的指令来实现这些功能。本实验学习使用定点DSP 实现16 位定点加、减、乘、除运算的基本方法和编程技巧。本实验的演示文件为exer1.out。
2.2 实验原理
1) 定点 DSP 中的数据表示方法
在DSP 中一个16 进制的数可以表示不同的十进制数,或者是整数,或者是小数(如果表示小数,必定小于1),但仅仅是在做整数乘除或小数乘除时,系统对它们的处理才是有所区别的,而在加减运算时,系统都当成整数来处理。
2) 实现 16 位定点加法
C54X 中提供了多条用于加法的指令,如ADD,ADDC,ADDM 和ADDS。其中ADDS 用于无符号数的加法运算,ADDC 用于带进位的加法运算(如32 位扩展精度加法),而ADDM 专用于立即数的加法。加法运算:ld temp1,a ;将变量temp1 装入寄存器Aadd temp2,a ;将变量temp2 与寄存器A 相加,结果放入A 中stl a,add_result ;将结果(低16 位)存入变量add_result 中。
3) 实现 16 位定点减法
C54X 中提供了多条用于减法的指令,如SUB,SUBB,SUBC 和SUBS。其中SUBS用于无符号数的减法运算,SUBB 用于带进位的减法运算(如32 位扩展精度的减法),而SUBC 为移位减,DSP 中的除法就是用该指令来实现的。
减法运算:
stm #temp1,ar3 ;将变量temp1 的地址装入ar3 寄存器
stm #temp3,ar2 ;将变量temp3 的地址装入ar2 寄存器
sub *ar2+, *ar3,b ;将变量temp3 左移16 位同时变量temp1 也左移16 位,然后;相减,结果放入寄存器 B(高16 位)中,同时ar2 加1。
sth b,sub_result ;将相减的结果(高16 位)存入变量sub_result。
4) 实现 16 位定点整数乘法
在C54X 中提供了大量的乘法运算指令,其结果都是32 位,放在A 或B 寄存器
中。乘数在C54X 的乘法指令很灵活,可以是T 寄存器、立即数、存贮单元和A 或B
寄存器的高16 位。
整数乘法运算:
rsbx FRCT ;清FRCT 标志,准备整数乘
ld temp1,T ;将变量temp1 装入T 寄存器
mpy temp2,a ;完成temp2*temp1,结果放入A 寄存器
5) 实现 16 位定点小数乘法
在 C54X 中,小数的乘法与整数乘法基本一致,只是由于两个有符号的小数相乘,
其结果的小数点的位置在次高的后面,所以必须左移一位,才能得到正确的结果。C54X
中提供了一个状态位FRCT,将其设置为1 时,系统自动将乘积结果左移一位。但注意
整数乘法时不能这样处理,所以上面的实验中一开始便将FRCT 清除。两个小数(16 位)
相乘后结果为32 位,如果精度允许的话,可以只存高16 位,将低16 位丢弃,这样仍可
得到16 位的结果。
小数乘法运算:
ssbx FRCT ;FRCT=1,准备小数乘法
ld temp1,16,a ;将变量temp1 装入寄存器A 的高16 位
mpya temp2 ;完成temp2 乘寄存器A 的高16 位,结果在B 中,同时
;将 temp2 装入T 寄存器
sth b,mpy_f ;将乘积结果的高16 位存入变量mpy_f
6) 实现 16 位定点整数除法
在 C54X 中没有提供专门的除法指令,一般有两种方法来完成除法。一种是用乘法来代替,除以某个数相当于乘以其倒数,所以先求出其倒数,然后相乘。这种方法对于除以常数特别适用。另一种方法是使用SUBC 指令,重复16 次减法完成除法运算。
7) 实现 16 位定点小数除法
在 C54X 中实现16 位的小数除法与前面的整数除法基本一致,也是使用循环的SUBC 指令来完成。但有两点需要注意:第一,小数除法的结果一定是小数(小于1),所以被除数一定小于除数。这与整数除法正好相反
2.3 实验内容
本实验需要使用C54X 汇编语言实现加、减、乘、除的基本运算,并通过DES 的存贮器显示窗口观察结果。实验分两步完成:
1) 编写实验程序代码
本实验的汇编源程序代码主要分为六个部分:加法、减法、整数乘法、小数乘法、整数除法和小数除法。每个部分后面都有一条需要加断点的标志语句: nopDES320PP-U 数字信号处理仿真/教学实验系统使用与实验指导 32当执行到这条加了断点的语句时,程序将自动暂停。这时你可以通过“存贮器窗口”检查计算结果。当然你看到的结果都是十六进制的数。实验源程序请参见附录。
2) 用 ccs simulator 调试运行并
您可能关注的文档
- 第七篇 模拟信号的数字传输.ppt
- 汤晓丹版操作系统课件剖析.ppt
- 第九章 带宽告诉我们什么.doc
- 第五章 3D浏览器比较.docx
- 即兴评述教案01课件.ppt
- 第五章 5陕西省城乡居民社会养老保险管理信息系统-远程登陆联网应用操作手册.doc
- 第七章 差异分析图表制作培训.ppt
- 第三章 1 应用系统命名规范.doc
- 机动车出厂合格证信息交换流程课件.ppt
- 华云数据云服务器控制面板使用说明手册教案.pdf
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
文档评论(0)