Flags

  • CF: Carry flag
    Set if an arithmetic operation generates a carry or a borrow out of the most-significant bit of the result; cleared otherwise.
    This flag indicates an overflow condition for unsigned-integer arithmetic. It is also used in multiple-precision arithmetic.
  • PF: Parity flag
    Set if the least-significant byte of the result contains an even number of 1 bits; cleared otherwise.
  • AF: Auxiliary Carry flag/Adjust flag
    Set if an arithmetic operation generates a carry or a borrow out of bit 3 of the result; cleared otherwise.
    This flag is used in binary-coded decimal (BCD) arithmetic.
  • ZF: Zero flag
    Set if the result is zero; cleared otherwise.
  • SF: Sign flag
    Set equal to the most-significant bit of the result, which is the sign bit of a signed integer. (0 indicates a positive value and 1 indicates a negative value.)
  • OF: Overflow flag
    Set if the integer result is too large a positive number or too small a negative number (excluding the sign-bit) to fit in the destination operand; cleared otherwise.
    This flag indicates an overflow condition for signed-integer (two’s complement) arithmetic.

Of these status flags, only the CF flag can be modified directly, using the STC, CLC, and CMC instructions. Also the bit instructions (BT, BTS, BTR, and BTC) copy a specified bit into the CF flag.