SBB              Subtract with Borrow                Flags: O D I T S Z A P C
*       * * * * *
SBB destination,source

Logic:    destination   destination - source - CF

SBB subtracts the source from the destination, subtracts 1 from that
result if the Carry Flag is set, and stores the result in destination.
The operands may be bytes or words, and both may be signed or unsigned
binary numbers.

                                                                          
Operands                  Clocks   Transfers  Bytes   Example
                        byte(word)
register, register          3          -        2     SBB DX,AX
register, memory        9(13) + EA     1       2-4    SBB DX,FEE
memory, register       16(24) + EA     2       2-4    SBB SIGH,SI
accumulator, immediate      4          -       2-3    SBB AX,8
register, immediate         4          -       3-4    SBB BH,4
memory, immediate      17(25) + EA     2       3-6    SBB TOTAL,10
                                                                          

Notes:         SBB is useful for subtracting numbers that are
larger than 16 bits, since it subtracts a borrow (in
the carry flag) from a previous operation.

You may subtract a byte-length immediate value from
a destination which is a word; in this case, the
byte is sign-extended to 16 bits before the
subtraction.

See also: SUB
See also: DEC
See also: NEG
See also: AAS
See also: DAS
See also: EA
See also: Flags

SBB Subtract with Borrow