sbb

8086 and later

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).

Loading...

Forms

Every form of sbb the assembler accepts, from NASM's own instruction table. The second column is the processor that introduced the form; a badge marks a form that needs an extension, that is lockable, or that long mode dropped.

FormSinceNotes
sbb r/m8, reg88086lock
sbb r/m16, reg168086lock
sbb r/m32, reg32386lock
sbb r/m64, reg64x86-64locklong
sbb reg8, r/m88086
sbb reg16, r/m168086
sbb reg32, r/m32386
sbb reg64, r/m64x86-64long
sbb r/m16, imm88086lock
sbb r/m32, imm8386lock
sbb r/m64, imm8x86-64locklong
sbb al, imm88086
sbb ax, imm168086
sbb eax, imm32386
sbb rax, imm32x86-64long
sbb r/m8, imm88086lock
sbb r/m16, imm168086lock
sbb r/m32, imm32386lock
sbb r/m64, imm32x86-64locklong
sbb [reg8], reg8, r/m8x86-64apxlong
sbb [reg16], reg16, r/m16x86-64apxlong
sbb [reg32], reg32, r/m32x86-64apxlong
sbb [reg64], reg64, r/m64x86-64apxlong
sbb [reg8], r/m8, reg8x86-64apxlong
sbb [reg16], r/m16, reg16x86-64apxlong
sbb [reg32], r/m32, reg32x86-64apxlong
sbb [reg64], r/m64, reg64x86-64apxlong
sbb [reg16], r/m16, imm8x86-64apxlong
sbb [reg32], r/m32, imm8x86-64apxlong
sbb [reg64], r/m64, imm8x86-64apxlong
sbb [reg8], r/m8, imm8x86-64apxlong
sbb [reg16], r/m16, imm16x86-64apxlong
sbb [reg32], r/m32, imm32x86-64apxlong
sbb [reg64], r/m64, imm32x86-64apxlong