EFLAGS寄存器在32位操作系统中的大小是32_bit的,也就是说,它可以存32个标志。实际上标志寄存器并没有完全被使用。
EFLAGS寄存器的状态标志(0,2,4,6,7,11位)指示算数指令(如ADD,SUB,MUL,DIV等)的结果。
CF (bit 0) 进位标志寄存器 (Carry Flag)
若算术操作产生的结果在最高有效位(most_significant_bit)发生进位或借位则将其置1,反之置0。
这个标志指示无符号整形运算的溢出状态,这个标志同样在多倍精度运算(mulitple_precision_arithmetic)中使用。
使用该标志位的情况有:多字节数的加减运算,无符号数的大小比较运算,位移操作,字节之间位移,专门改变CF的指令等。
PF (bit 2) 奇偶标志寄存器 (Parity Flag)
若运算结果中“1”(二进制)的个数为偶数,则将其置1,反之置0。
利用PF可以进行奇偶效验检查,或产生奇偶校验位。在数据传送过程中,为了提供传送的可靠性,如果采用其偶校验的方法,就可以使用该标志位。
AF (bit 4) 辅助进位标志寄存器 (Auxiliary Carry Flag)
在发生低位向高位进行进位或借位时,辅助进位标志的值被置1,反之置0。
ZF (bit 6) 零位标志寄存器 (Zero Flag)
若运算结果为0则将其置1,反之置0。在判断运算结果是否为0时,可使用此标志位。
SF (bit 7) 符号标志寄存器 (Sign Flag)
有符号形的最高标志位 运算结果为负数则将其置1,反之置0。
0F (bit 11) 溢出标志寄存器 (Overflow Flag)
有符号形运算结果是否溢出,溢出则将其置1,反之置0。