
下面 16位的 浮点乘法运算的 单片机汇编程序,求注释,怎么看不懂啊。浮点运算时候具体怎么实现的?采纳
;(r3r2r1r0)=(r7r6)*(r5r4),r4-r7unchangedmul_word:movb,r6mova,r4mulabmovr0,amovr1,bmov...
;(r3r2r1r0) = (r7r6) * (r5r4), r4-r7 unchanged
mul_word: mov b,r6
mov a,r4
mul ab
mov r0,a
mov r1,b
mov r2,#0
mov r3,#0
mov a,r7
mov b,r4
mul ab
add a,r1
mov r1,a
mov a,r2
addc a,b
mov r2,a
clr a
addc a,r3
mov r3,a
mov a,r6
mov b,r5
mul ab
add a,r1
mov r1,a
mov a,r2
addc a,b
mov r2,a
clr a
addc a,r3
mov r3,a
mov a,r7
mov b,r5
mul ab
add a,r2
mov r2,a
mov a,r3
addc a,b
mov r3,a
ret 展开
mul_word: mov b,r6
mov a,r4
mul ab
mov r0,a
mov r1,b
mov r2,#0
mov r3,#0
mov a,r7
mov b,r4
mul ab
add a,r1
mov r1,a
mov a,r2
addc a,b
mov r2,a
clr a
addc a,r3
mov r3,a
mov a,r6
mov b,r5
mul ab
add a,r1
mov r1,a
mov a,r2
addc a,b
mov r2,a
clr a
addc a,r3
mov r3,a
mov a,r7
mov b,r5
mul ab
add a,r2
mov r2,a
mov a,r3
addc a,b
mov r3,a
ret 展开
1个回答
展开全部
单片机很多没有浮点寄存器的,那怎么进行浮点运算呢?
简单,如 61.5 => 615 => 02 67(十六进制)
mov r7,#02
mov r6,#67
就实现了 61.5 这个浮点数,当然,继续进行其他运算时别忘记了小数点。
简单,如 61.5 => 615 => 02 67(十六进制)
mov r7,#02
mov r6,#67
就实现了 61.5 这个浮点数,当然,继续进行其他运算时别忘记了小数点。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询