在8086CPU中一切数据寄存器都是16位的,在其中需要实现大于16位的加法运算时,就需要拆开计算
先简述一下步骤:
1、首先是将一个大数据拆成多个16位的数据,比如说是48B5A2EF001H,可以拆成048BH,5A2EH,F001H
2、最低位的16位数先进行add运算:add 相加的第一个数的低16位(寄存器),相加的第二个数的低16位
3、用adc指令对之后的每16位进行运算:adc 相加的第一个数的16位(寄存器),相加的第二个数的16位
比如说要将48B5A2EF001H + 21654F54BDF4H
先拆:048BH,5A2EH,F001H
2165H,4F54H, BDF4H
assume cs:code
code segment
start: mov ax, 048BH
mov bx, 5A2EH
mov cx, 0F001H
add cx, 0BDF4H
adc bx, 4F54H
adc ax, 2165H
mov ax, 4C00H
int 21H
code ends
end start
结果的高位存放在ax中,次高位存放在bx中,低位存放在cx中
所以得到的结果就是上面截图所示的