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.
Seealso:
This page last updated on Fri Nov 30 10:49:50 MSK 2001
Copyright © 1992-2001, Vitaly Filatov, Moscow, Russia
Webmaster