Unformatted text preview: been added to the EFLAGS register, but the function and placement of existing flags have remained the same from one family of the IA32 processors to the next. As a result, code that accesses or modifies these flags for one family of IA32 processors works as expected when run on later families of processors. 3.4.3.1 Status Flags The status flags (bits 0, 2, 4, 6, 7, and 11) of the EFLAGS register indicate the results of arithmetic instructions, such as the ADD, SUB, MUL, and DIV instructions. The status flag functions are: CF (bit 0) Carry flag  Set if an arithmetic operation generates a carry or a borrow out of the mostsignificant bit of the result; cleared otherwise. Vol. 1 321 BASIC EXECUTION ENVIRONMENT PF (bit 2) AF (bit 4) ZF (bit 6) SF (bit 7) OF (bit 11) This flag indicates an overflow condition for unsignedinteger arithmetic. It is also used in multipleprecision arithmetic. Parity flag  Set if the leastsignificant byte of the result contains an even number of 1 bits; cleared otherwise. 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 binarycoded decimal (BCD) arithmetic. Zero flag  Set if the result is zero; cleared otherwise. Sign flag  Set equal to the mostsignificant bit of the result, which is the sign bit of a signed integer. (0 indicates a positive value and 1 indicates a negative value.) Overflow flag  Set if the integer result is too large a positive number or too small a negative number (excluding the signbit) to fit in the destination operand; cleared otherwise. This flag indicates an overflow condition for signedinteger (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. The status flags allow a single arithmetic operation to produce results for three different data types: unsigned integers, signed integers, and BCD integers. If the result of an arithmetic operation is treated as an unsigned integer, the CF flag indicates an outofrange condition (carry or a borrow); if treated as a signed integer (two's complement number), the OF flag indicates a carry or borrow; and if treated as a BCD digit, the AF flag indicates a carry or borrow. The SF flag indicates the sign of a signed integer. The ZF flag indicates either a signed or an unsignedinteger zero. When performing multipleprecision 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 Jcc (jump on condition code cc), SETcc (byte set on condition code cc), LOOPcc, and CMOVcc (conditional move) use one or more of the status flags as condition codes and test them for branch, setbyte, or endloop conditions. 3.4.3.2 DF Fl...
View
Full
Document
This note was uploaded on 10/01/2013 for the course CPE 103 taught by Professor Watlins during the Winter '11 term at Mississippi State.
 Winter '11
 Watlins

Click to edit the document details