注册 登录
编程论坛 汇编论坛

两个十进制数相加显示结果

阿贝 发布于 2009-10-25 20:44, 1326 次点击
要求加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
  请高手指教!

下面是自己写的相加的过程,但结果显示不出来
LOP1:MOV AL,DATA1[SI]   ;从数组1取数到AL,寄存器相对寻址
      ADC AL,DATA2[SI]   ;与数组2的对应的数带进位加
      MOV DATA1,AL       ;存入结果,指令不影响进位位
      INC SI             ;修改操作数地址,指令不影响进位位
      ADC  DATA1,0       ;和的最高位带进位加
      LOOP LOP1          ;循环
         MOV DATA1,AL
         MOV    SI,OFFSET DATA1   
         MOV    BX,05      ;显示结果
4 回复
#2
nzxhust2009-10-25 21:30
ASCII码相加比如‘5’+‘6’谁告诉你就等于‘1‘’1‘?
应该先把ASCII码转换为整数形式相加算出结果然户将结果整数转为ASCII码输出结果
#3
阿贝2009-10-25 22:23
那该怎样写啊
#4
nzxhust2009-10-26 13:30
ASCII码‘3’-‘0’不就是整数3啦,对应位置乘以该位的位权不就是转换为整数了,转回来一个道理自己琢磨下
#5
dbx123582009-10-27 18:20
楼上是一种不错的方法~其实,你可以看一下ASCII的码表。
1