sbb{bwl} reg[8|16|32], r/m[8|16|32] sbb{bwl} r/m[8|16|32], reg[8|16|32] sbb{bwl} imm[8|16|32], r/m[8|16|32]
r/m[8|16|32] - (reg[8|16|32] + CF) -> r/m[8|16|32]
reg[8|16|32] - (r/m[8|16|32] + CF) -> reg[8|16|32]
r/m[8|16|32] - (imm[8|16|32] + CF) -> r/m[8|16|32]
Subtracts (operand1 and the carry flag) from operand2 and stores the result in operand2. When an immediate byte value is subtracted from a word, the immediate value is sign-extended to the size of the word operand before the subtract operation is executed.
Integer subtract the 8-bit content of the CL register plus the carry flag from the effective address (addressed by the ESI register plus an offset of 1):
sbbb %cl, 1(%esi)
Integer subtract the 16-bit constant, -126, plus the carry flag from the AL register:
sbbw $-126, %al
Integer subtract the 32-bit constant, 12345678, plus the carry flag from the effective address (addressed by the EDI register plus an offset of 4):
sbbl $12345678, 4(%edi)