lzAzl 发表于 2020-5-14 12:56:54

一个关于加法的问题

AX,BX中都存一个足够大的数
使得执行ADD AX,BX后,AX溢出了
但我想要正确答案,怎么办?

能不能低8位相加存到AX,高8位相加存到DX?

sunrise085 发表于 2020-5-14 15:21:22

本帖最后由 sunrise085 于 2020-5-14 16:09 编辑

AX和BX都已经有数据了。
MOV CH,AL       ;保存AX的低8位
MOV CL,BL       ;保存BX的低8位
MOV AL,AH       ;把AH赋值给AL
MOV BL,BH       ;把BH赋值给BL
MOV AH,0h       ;高位清零
MOV BH,0h       ;高位清零

ADD AX,BX       ;两个8位数字相加 AH 高位存储进位的数
MOV DX,AX       ;将高位相加结果存放到DX

MOV AL,CH       ;恢复原AL数据
MOV BL,CL       ;恢复原BL数据
MOV AH,0h       ;高位清零
MOV BH,0h       ;高位清零
ADD AX,BX       ;两个8位数字相加 AH 高位存储进位的数

lzAzl 发表于 2020-5-14 16:00:12

sunrise085 发表于 2020-5-14 15:21
AX和BX都已经有数据了。

非常感谢!
(高位清零应该是 MOV AH,0h 吧

sunrise085 发表于 2020-5-14 16:08:48

lzAzl 发表于 2020-5-14 16:00
非常感谢!
(高位清零应该是 MOV AH,0h 吧

哦哦,是的。手快写错了。已经修改
页: [1]
查看完整版本: 一个关于加法的问题