标志寄存器,里面有众多标记位,记录了CPU执行指令过程中的一系列状态,这些标志大都由CPU自动设置和修改:
-
CF 进位标志
MOV AL,0XFF ADD AL,1 这个时候AL超出FF的最大值就进位了,CF就会变为1
-
PF 奇偶标志
在运算的过程成中,寄存器中的值换算为二进制的时候如果是1的个数是偶数,PF为1,否则PF为0
-
AF辅助进位标志
1.在字节操作时,发生低4位向高4位进位或者借位时就为1,比如 MOV EAX,0x55FFFFFF ADD EAX,2 这个时候低4位向高4位进位就为1 2.在字操作时,发生低字节向高字节进位活着借位时就为1,比如 MOV AX,0x55FF ADD AX,2 这个时候低2位向高2位进位就为1
-
ZF 零标志
当运算结果为0时就为1,否则为0 一般用于if中的二个值对比,比如 XOR EAX,EAX,然后再Je跳转 破解登陆的时候就是让这个值为0,然后Je到想要到的地方
-
SF 符号标志
当运算结果为正数时,SF=0,否则SF=1 比如 mov al,7F add al,2 这个时候SF就为1了,因为7F的二进制为0111 1111,但是加完2之后就等于1000 0001,第八位变为1了,所以SF为1
-
OF 补码溢出标志
如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0.
-
TF 跟踪标志
TF=1,机器进入单步工作方式,每条机器指令执行后,显示结果及寄存器状态 TF=0,则机器处在连续工作方式。此标志为调试机器或调试程序发现故障而设置
-
IF 中断标志
IF=1,CPU允许中断,IF=0,则CPU关闭中断