第4章软件开发1.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章软件开发1

start: STM #0, SWWSR STM #STACK+10H, SP STM #x, AR1 RPT #3 MVPD table, *AR1+ STM #x, AR2 STM #y, AR3 LD *AR2,T ;T=x0 MPYU *AR3+, A ;A=x0×y0 (U×U) STL A,@w0 ;w0=x0×y0 LD A, -16,A ;A右移16位,A高位→A低位 MACSU *AR2+, *AR3-, A ;A+=y1×x0(S×U) MACSU *AR3+, *AR2, A ;A+=x1×y0(S×U) STL A, @w1 ;w1=A LD A, -16, A ;A右移16位,A高位→A低位 MAC *AR3,*AR2, A ;A+=y1×x1(S×S) STL A, @w2 ;w2=A的低16位 STH A, @w3 ;w3=A的高16位 end: B end .end 3. 小数运算 两个16位整数相乘:乘积总是“向左增长”。这意味着多次相乘后乘积将会很快超出定点器件的数据范围。 两个小数相乘:乘积总是“向右增长”。这就意味着超出定点器件数据范围的将是不太感兴趣的部分。 1) 小数的表示方法 采用2的补码表示小数:最高位为符号位,数值范围从-1~+1。 MSB … LSB 0/1(符号位) . 2-12-2 … 2-15 十进制小数转换成十六进制数:由十进制小数乘以32768后,再将其整数部分转换。 如: -1: |-1|×32768 再求反+1 8000h -0.5: |-0.5|×32768 再求反+1 C000h 0: → 0000h 0.5: 0.5×32768 4000h 1: 1×32768 7FFFh 汇编语言程序中:小数0.123 .Word 32768*123/1000。 2) 小数乘法中的冗余符号位 问题:两个带符号小数相乘,将出现得到的积带有两位符号位。 解决冗余符号位的办法:在程序中设定状态寄存器ST1中的FRCT(小数方式)位为1,在乘法器将结果传送至累加器时就能自动地左移1位,累加器中结果为Szzzzzz0(Q7格式),自动消去了两个带符号数相乘时产生的冗余符号位。 小数乘法编程时:应当先设置FRCT位。 SSBX FRCT MPY *AR2,*AR3,A STH A, @Z 【例4.19】 编制计算 的程序段,其中数据均为小数。 .title “exp19.asm” .mmregs STACK .usect “STACK”,10H .bss a, 4 .bss x, 4 .bss y, 1 .data table: .word 1*32768/10 .word 2*32768/10 .word -3*32768/10 .word 4*32768/

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档