Subtract with Borrow
sbb r/m8, reg8 | sbb r/m16, reg16 | sbb r/m32, reg32 | sbb r/m64, reg64 | sbb reg8, r/m8 | sbb reg16, r/m16 | sbb reg32, r/m32 | sbb reg64, r/m64 | sbb r/m16, imm8 | sbb r/m32, imm8 | sbb r/m64, imm8 | sbb al, imm8 | sbb ax, imm16 | sbb eax, imm32 | sbb rax, imm32 | sbb r/m8, imm8 | sbb r/m16, imm16 | sbb r/m32, imm32 | sbb r/m64, imm32 | sbb [reg8], reg8, r/m8 | sbb [reg16], reg16, r/m16 | sbb [reg32], reg32, r/m32 | sbb [reg64], reg64, r/m64 | sbb [reg8], r/m8, reg8 | sbb [reg16], r/m16, reg16 | sbb [reg32], r/m32, reg32 | sbb [reg64], r/m64, reg64 | sbb [reg16], r/m16, imm8 | sbb [reg32], r/m32, imm8 | sbb [reg64], r/m64, imm8 | sbb [reg8], r/m8, imm8 | sbb [reg16], r/m16, imm16 | sbb [reg32], r/m32, imm32 | sbb [reg64], r/m64, imm32 SBB performs integer subtraction: it subtracts its second
operand, plus the value of the carry flag, from its first, and
leaves the result in its destination (first) operand. The flags are
set according to the result of the operation: in particular, the
carry flag is affected and can be used by a subsequent SBB
instruction.
In the forms with an 8-bit immediate second operand and a longer
first operand, the second operand is considered to be signed, and is
sign-extended to the length of the first operand. In these cases,
the BYTE qualifier is necessary to force NASM to generate this
form of the instruction.
To subtract one number from another without also subtracting the
contents of the carry flag, use SUB (SUB).