Flags历经了三代flags、eflags和rflags。分别对应16位、32位和64位。
在现在的64位处理器中,应该是rflags。但是在legacy mode中一般习惯性还是叫eflags。
对于的有三个指令:pushf、pushfd和pushfq。
32位的eflags寄存器如下图所示:
其中的标志位分为三类:
- status flags(状态标志位)
- control flags(控制标志位)
- system flags(系统标志位)
其中控制标志位只有一个DF(Direction Flags)[bit10]。
使用在LODSx、STOSx、MOVSx、SCASx和INSx这类串指令,用来指示串指令的指针方向。
5.1 Eflags中的状态标志位
状态标志位有:
- OF(溢出标志位)
- SF(符号标志位)
- ZF(零标志位)
- AF(调整标志位)
- CF(进位标志位)
- PF(奇偶标志位)
这些状态标志位表示了指令执行结果的状态。