| 
 |  | 
                             Subtract with Borrow                             
  
    | 
       86/88  | 
    
       Y  | 
    
       186  | 
    
       Y  | 
    
       286  | 
    
       Y  | 
    
       386  | 
    
       Y  | 
    
       486  | 
    
       Y  | 
    
       SBB destination, source  | 
   
  
    | 
       Ovfl  | 
    
       Y  | 
    
       Dir  | 
    
       N  | 
    
       Int  | 
    
       N  | 
    
       Trap  | 
    
       N  | 
    
       Sign  | 
    
       Y  | 
    
       Zero  | 
    
       Y  | 
    
       Aux  | 
    
       Y  | 
    
       Prty  | 
    
       Y  | 
    
       Carry  | 
    
       Y  | 
   
     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.
       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.
------------------------------------ Timing ----------------------------------
OpCode          Instruction             386     286     86
1C ib           SBB AL, imm8            2       3       4
1D iw           SBB AX, imm16           2       3       4
1D id           SBB EAX, imm32          2
80/3 ib         SBB r/m8, imm8          2/7     3/7     4/17+EA
81/3 iw         SBB r/m16, imm16        2/7     3/7     4/17+EA
81/3 id         SBB r/m32, imm32        2/7
83/3 ib         SBB r/m16, imm8         2/7     3/7     4/17+EA
83/3 ib         SBB r/m32, imm8         2/7
18/r            SBB r/m8, r8            2/6     2/7     3/16+EA
19/r            SBB r/m16, r16          2/6     2/7     3/16+EA
19/r            SBB r/m32, r32          2/6
1A/r            SBB r8, r/m8            2/7     2/7     3/9+EA
1B/r            SBB r16, r/m16          2/7     2/7     3/9+EA
1B/r            SBB r32, r/m32          2/7
------------------------------------ Logic -----------------------------------
        destination = destination - source - CF
See Also SUB DEC NEG AAS DAS Flags |