指令 adc(带进位加法):

编写一个子程序 对两个 128位的 数据进行相加

 

add128: push ax
 push bx
 push si
 push di
 
 sub ax,ax
 mov cx,8

s: mov ax,[si]
 adc ax,[di]
 mov [si],ax
 inc si
 inc si
 inc di
 inc di
 loop s

 pop di
 pop si
 pop bx
 pop ax
 ret

学会
1 inc loop指令是不影响CF标志位的所以连个inc改成add si,2是不行的
2 adc 指令的原理 adc ax,bx  === ax = ax+bx+cf(cf由上一条指令改写)
3 adc 指令也会改写cf的值 一定注意
4 子程序 压栈出栈 解决寄存器的冲突问题

指令 abb(带借位减法):

原理同adc指令

再次只举一例:

计算 003E1000H - 00202000H 结果放在ax bx中 程序如下
mov ax,003EH
mov bx,1000H
sub bx,2000H
sbbax,0020H