击“Ru
F5”按钮,程序从当前PC继续运行,完成小数乘法运算。当程序再次暂停时(断点位于0x1826),可以看到0x83和0x84单元的内容分别为4000和b548,A寄存器的内容为40000000,乘法的结果在B寄存器中为daa40000,这正是我们希望的结果:050583740291870x0daa4。对于小数乘法,一般情况都可以用1个16位的内容单元将B寄存器的高16保存(如存入0x8c单元)。
l单击“Ru
F5”按钮,程序从当前PC继续运行,完成整数除法运算。当程序再次暂时(断点位于0x183b),可以看到0x810x820x8d和0x8e单元的内容分别为00340012FFFE和0010,这正是我们希望的结果:52除以18,商为20xfffe,余数为160x10。
m单击“Ru
F5”按钮,程序从当前PC继续运行,完成小数除法运算。当程序再次暂停时(断点位于0x1852),可以看到0x810x82和0x8f单元的内容分别为40004ab8和6da3,这正是我们希望的结果:05058374085654570x6da3。
如果以上程序运行不正确,请检查代码是否输入正确,还可以在源代码中插入断点调试,注意对中间结果的观察。
八、思考题
(1)在减法操作中使用了辅助寄存器ar2,ar3,请说明在执行完减法计算后辅助寄存器ar2和ar3的值为多少?
答:观察寄存器ar2,ar3其值均为都为0084
(2)在小数乘法中使用了置FRCT标志为1的指令。如果将该语句取消,那么B寄存器的结果是多少?想想什么时候应该设置FRCT标志?
答:取消该语句以后结果为FFED520000,FRCT标志需要在小数乘法的时候设置。
(3)如何实现无符号数的乘法?代码如下:st1000htemp1st8000htemp2rsbxFRCTldtemp1Tmpyutemp2aA0008000000
f
(4)请利用本实验程序计算以下算式的结果?0250583740x12adQ15st2000htemp3st0x4AB7temp4050250x7ff7Q14st2000htemp1st1000htemp2i
ittemp1temp205058374085654570x6da346533450xdst4653temp1st345temp2i
ittemp1temp2521820xfffemod160x10078968708760x7363Q15
九、实验结论:
通过本实验,初步的了解到在DSP中一个16进制数的表示方法,以及如何对数进行定点运算。并且利用C54X定点DSP进行小数,整数的加、减、乘、除等基本运算,掌握了基本方法和如何使用编程语言进行计算。
十、总结及心得体会:无十二、对本实验过程及方法、手段的改进建议:无
报告评分:指导教师签字:
fr