《dsp实验报告》

《dsp实验报告》

ID:36678476

大小:603.51 KB

页数:28页

时间:2019-05-13

《dsp实验报告》_第1页
《dsp实验报告》_第2页
《dsp实验报告》_第3页
《dsp实验报告》_第4页
《dsp实验报告》_第5页
资源描述:

《《dsp实验报告》》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、DSP实验报告姓名:张永学号:20051040315实验二基本算数运算一、实验目的和要求加、减、乘、除是数字信号处理中最基本的算术运算。DSP中提供了大量的指令来实现这些功能。本实验学习使用定点DSP实现16位定点加、减、乘、除运算的基本方法和编程技巧。本实验的演示文件为exer1.out。二、实验原理1)定点DSP中的数据表示方法2)实现16位定点加法ldtemp1,a;将变量temp1装入寄存器Aaddtemp2,a;将变量temp2与寄存器A相加,结果放入A中stla,add_result;将结果(低16位)存入变量add_result中3)实现16位定点减法stm#temp1,a

2、r3;将变量temp1的地址装入ar3寄存器stm#temp3,ar2;将变量temp3的地址装入ar2寄存器sub*ar2+,*ar3,b;将变量temp3左移16位同时变量temp1也左移16位,然后相减,结果放入寄存器B(高16位)中,同时ar2加1。sthb,sub_result;将相减的结果(高16位)存入变量sub_result4)实现16位定点整数乘法rsbxFRCT;清FRCT标志,准备整数乘ldtemp1,T;将变量temp1装入T寄存器mpytemp2,a;完成temp2*temp1,结果放入A寄存器(32位)5)实现16位定点小数乘法我们使用下列ssbxFRCT;F

3、RCT=1,准备小数乘法ldtemp1,16,a;将变量temp1装入寄存器A的高16位mpyatemp2;完成temp2乘寄存器A的高16位,结果在B中,同时将temp2装入T寄存器sthb,mpy_f;将乘积结果的高16位存入变量mpy_f6)实现16位定点整数除法代码如下:ldtemp1,T;将被除数装入T寄存器mpytemp2,A;除数与被除数相乘,结果放入A寄存器ldtemp2,B;将除数temp2装入B寄存器的低16位absB;求绝对值stlB,temp2;将B寄存器的低16位存回temp2ldtemp1,B;将被除数temp1装入B寄存器的低16位absB;求绝对值rpt#

4、15;重复SUBC指令16次subctemp2,b;使用SUBC指令完成除法运算bcddiv_end,agt;延时跳转,先执行下面两条指令,然后判断A,若A>0,则跳转到标号div_end,结束除法运算stlB,quot_i;将商(B寄存器的低16位)存入变量quot_isthB,remain_i;将余数(B寄存器的高16位)存入变量remain_ixorB;若两数相乘的结果为负,则商也应为负。先将B寄存器清0subquot_i,B;将商反号stlB,quot_i;存回变量quot_i中div_end:3)实现16位定点小数除法代码如下:ldtemp1,T;将被除数装入T寄存器mpyte

5、mp2,A;除数与被除数相乘,结果放入A寄存器ldtemp2,B;将除数temp2装入B寄存器的低16位absB;求绝对值stlB,temp2;将B寄存器的低16位存回temp2ldtemp1,16,B;将被除数temp1装入B寄存器的高16位absB;求绝对值rpt#15;重复SUBC指令16次subctemp2,b;使用SUBC指令完成除法运算and#0ffffh,B;将B寄存器的高16位清为0。这时余数被丢弃,仅保留商bcddiv_end,agt;延时跳转,先执行下面两条指令,然后判断A,若A>0,则,跳转到标号div_end,结束除法运算stlB,-1,quot_f;将商右移一位

6、后存入变量quot_f,右移是为了修正符号位xorB;若两数相乘的结果为负,则商也应为负。先将B寄存器清0subquot_f,B;将商反号stlB,quot_f;存回变量quot_f中div_end:三、实验内容1)编写实验程序代码本实验的汇编源程序代码主要分为六个部分:加法、减法、整数乘法、小数乘法、整数除法和小数除法。每个部分后面都有一条需要加断点的标志语句:nop,当执行到这条加了断点的语句时,程序将自动暂停。这时你可以通过“存贮器窗口”检查计算结果。当然你看到的结果都是十六进制的数。实验源程序请参见附录。2)用ccssimulator调试运行并观察结果在完成实验程序代码的输入,并

7、使用ccs进行编译并连接,得到out文件后,就可以在simulator上调试运行。步骤如下:a.启动ccssimulator。b.点击file->loadprogram,找到exer1.out并装入。这时可在反汇编窗口看到程序代码。c.打开“Memory”窗口,并在其中选择要查看的存贮器地址段:0x080-0x08e。d.在反汇编窗口中在每个“nop”指令处都设一个断点,方法有两种:1.用鼠标双击该指令将其点亮即可。2.在菜单栏中选

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

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

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