- 标志寄存器中有一些位,它们控制了CPU在不同情况下所做出的反应(初学小白的总结,目前稍作记录,深入学习后会补充完善)
- 通常情况下,运算类的指令会影响标志寄存器中标志的变化
0位 Carry Flag(CF):进位标志
- 若算数操作产生的结果在最高有效位(most-significant bit)发生进位或借位,则将其置1,反之置0
- 这个标志通常表示无符号整型的运算的溢出状态
2位 Parity Flag(PF):奇偶标志
- 如果结果的最低有效字节(least-significant byte)包含偶数个1,则将其置1,反之置0
- 可进行奇偶校验检查
4位 Assistent Carry Flag(AF):辅助进位标志
- 如果算数操作在结果的第三位发生进位或借位,则将其置1,反之置0
- 在BCD(binary-code decimal)算数运算中被使用
6位 (ZF):零标志
- 相关指令执行后结果为0,则将其置1,反之置0
7位 (SF):符号标志
- 相关指令执行后结果为负,则将其置1,反之置0
8位 (TF):单步标志
- 当TF=1时,处理器每次只执行一条指令,即单步执行
9位 (IF):中断使能标志
- 当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求
- 当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求
- 决定CPU是否受外部中断请求的影响
10位 (DF):方向标志
- 执行某些串操作指令时(比如lodsb,cmpsb)的方向标志
- 当DF=0时,SI、DI寄存器自动递增;当DF=01时,SI、DI寄存器自动递减
11位 (OF):溢出标志
- 记录有符号运算的结果是否发生溢出,如果发生溢出,则将其置1,反之置0