One instruction, multiple Data Type Result
- and BCD integers.
If the result of an arithmetic operation is treated as:
- an unsigned integer, the CF flag indicates an out-of-range condition (carry or a borrow);
- a signed integer (two’s complement number), the OF flag indicates a carry or borrow;
- a BCD digit, the AF flag indicates a carry or borrow.
- The SF flag indicates the sign of a signed integers.
Multiple-precision arithmetic on integers
When performing multiple-precision arithmetic on integers, the CF flag is used in conjunction with the add with carry (ADC) and subtract with borrow (SBB) instructions to propagate a carry or borrow from one computation to the next.
The condition instructions use one or more of the status flags as condition codes and test them for:
- or end-loop conditions
The status flag functions are:
|CF||0||Carry flag|| Set if an arithmetic operation generates:
* a carry
* or a borrow
out of the most significant bit of the result;
This flag indicates an overflow condition for unsigned-integer arithmetic. It is also used in multiple-precision arithmetic.
|PF||2||Parity flag||Set if the least-significant byte of the result contains an even number of 1 bits; cleared otherwise|
|AF||4||Auxiliary Carry flag|| Set if an arithmetic operation generates:
* a carry
* or a borrow out of bit 3 of the result;
This flag is used in binary-coded decimal (BCD) arithmetic.
|ZF||6||Zero flag||Set if the result is zero; cleared otherwise.|
|SF||7||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||11||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.
- The bit instructions (BT, BTS, BTR, and BTC) copy a specified bit into the CF flag.
Documentation / Reference
- 184.108.40.206 - Status Flags