55重复操作程序56数据块传送程序57小数运算程序58浮点运算程序.pptVIP

  • 20
  • 0
  • 约1.29万字
  • 约 41页
  • 2016-12-09 发布于重庆
  • 举报

55重复操作程序56数据块传送程序57小数运算程序58浮点运算程序.ppt

55重复操作程序56数据块传送程序57小数运算程序58浮点运算程序

第5章 TMS320C54x汇编语言程序设计 5.8 浮点运算程序 在数字信号处理过程中,定点运算是将数据的整数和小数部分分开,小数点在一个固定位置,其优点是硬件实现比较容易,但动态范围受到限制。 为了扩大数据的范围和精度,需要采用浮点运算。虽然’C54x是个定点DSP器件,但它支持浮点运算。 在’C54x上实现浮点运算,操作数必须变成定点数,然后再返回浮点数。通过归格化输入数据,可以将定点值变换为浮点值。 第5章 TMS320C54x汇编语言程序设计 5.8 浮点运算程序 1. 浮点数的表示方法 浮点数是由尾数和指数两部分组成,它与定点数的关系: 定点数 = 尾数?2-指数 如:定点数:0x2000 = 0.25 = 0.5?2-1 尾数= 0.5 = 0x4000,指数=1。 尾数:可正可负,用补码表示。 指数:可正可负,用补码表示,其范围:-8~31。 第5章 TMS320C54x汇编语言程序设计 5.8 浮点运算程序 2. 定点数转换成浮点数 ’C54x通过三条指令可将定点数转换成浮点数。 ① EXP A 提取指数指令 功能:若A=0,则T=0; 若A≠0,则T=(A的多余符号位数-8)。 即提取指数,A的内容不变,指数=多余符号位数-8。 例如:执行EXP A前,A=FF FFFF FFCB T=0000 A=FF FFFF FFCB= 33 多余符号位数:33 指数:33-8=25 T=0019 执行后, A=FF FFFF FFCB T=0019 (25) 又如:执行EXP B前,B=07 8543 2105 T=0007 B = 0000 0111 1000…… 多余符号位数:4 指数:4-8=-4 T=FFFC 执行后,B=07 8543 2105 T=FFFC (-4) 第5章 TMS320C54x汇编语言程序设计 2. 定点数转换成浮点数 ② ST T,EXPONENT 紧随EXP指令之后。 功能:将保存在T中的指数存放在数据存储器EXP单元中。 ③ NORM A 根据T对累加器进行格式化处理指令。 功能:根据T的内容,对累加器A进行移位。 T0,A左移T位;T0,A右移T位。 即ATS?A。 第5章 TMS320C54x汇编语言程序设计 2. 定点数转换成浮点数 例如:NORM A 执行前: A=FF FFFF F001 T=0013 (19) A=1111……111111111000000000001 28 左移19位1000 0000 0000 1000…… 执行后: A=FF 8008 0000 T=0013 (19) 又如: NORM B,A 执行前: A=FF FFFF F001 B=21 0A0A 0A0A T=FFF9(-7) B右移7位送入A A=00 4214 1414 执行后: A=00 4214 1414 B=21 0A0A 0A0A T=FFF9(-7) 第5章 TMS320C54x汇编语言程序设计 5.8 浮点运算程序 3.浮点数转换成定点数 定点数→浮点数: 根据定点数,求其尾数和指数,然后将尾数按指数T进行移位。 当T0,A左移T位;当T0,A右移T位。 浮点数→定点数: 根据指数T,将尾数进行移位。 当T0,A右移T位;当T0,A左移T位。 第5章 TMS320C54x汇编语言程序设计 5.8 浮点运算程序 4.浮点乘法运算实例 实现浮点乘法运算时,首先将定点数规格化成浮点数;然后完成浮点乘法运算;最后将浮点数转换成定点数。 【例5.8.1】编写浮点乘法程序,完成a1×a2=0.4×(-0.9) 程序中保留10个数据存储单元: a1(被乘数) a2(乘数) b1(被乘数的指数) c1(被乘数的尾数) b2(乘数的指数) c2(乘数的尾数) ep(乘积的指数) mp(乘积的尾数) prod(乘积) temp(暂存单元) 第5章 TMS320C54x汇编语言程序设计 4.浮点乘法运算实例 数据存储器 被乘数 乘数 被乘数的指数 被乘数的尾数 乘数

文档评论(0)

1亿VIP精品文档

相关文档