初学者求助汇编语言的问题

2019-07-16 05:14发布

本人是初学者,平常在设计程序都是用C语言来写程序。今天突然心血来潮想用汇编写简单的乘法程序,并用数码管输出,但是遇到一个问题:当我的乘积超过255的时候,如999。请问怎么弄啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
lstcspring
1楼-- · 2019-07-16 08:03

用多个寄存器,参考:
(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
疲惫的教主
2楼-- · 2019-07-16 08:08
感谢你的回复。
请问可以解释下(r3r2r1r0) = (r7r6) * (r5r4), r4-r7 unchanged是什么意思吗?
R3R2R1R0是表示4位数吗?
疲惫的教主
3楼-- · 2019-07-16 10:14
请问方法就和用笔算是一样的吗?

一周热门 更多>