指令 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
转载于:https://blog.51cto.com/xzv587/1363233