sbb 是带错位减法指令,它利用了 CF 位上记录的借位值。
指令格式:sbb 操作对象1,操作对象2
功能:操作对象1 = 操作对象1 - 操作对象2 - CF
比如指令 sbb ax,bx 实现的功能是:(ax) = (ax) - (bx) -CF
sbb 指令执行后,将对 CF 进行设置。利用 sbb 指令可以对任意大的数据进行减法运算。
比如,计算003E1000H-00202000H,结果放在ax,bx中,程序如下:
mov bx,1000H mov ax,003EH sub bx,2000H sbb ax,0020H
sbb和adc是基于同样的思想设计的两条指令,在应用思路上和adc类似。在这里,我们就不再进行过多的讨论。通过学习这两条指令,我们可以进一步领会一下标志寄存器CF位的作用和意义。