8086CPU的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW)。除了前面介绍的寄存器。本博文将介绍最后一个寄存器,标志寄存器。不同于之前的寄存器,标志寄存器是按位起作用的。其每一位都有特殊的含义。
8086标志寄存器的结构如下图所示:
标志寄存器的1,3,5,12,13,14,15都没有特殊含义。其0,2,4,6,7,8,9,10,11用作标志位使用。
11.1 ZF标志(zeros flag)
标志寄存器第6位为ZF标志寄存器,代表零标志,该标志位记录相关指令执行结束后是否为0。如果结果为0,那么zf=1,如果结果不为0,那么zf=0.
比如:
[plain] view plain copy print?
- mov ax,1
- sub ax,1
sub指令执行结束后结果为0,所以ZF=1
再比如:
[plain] view plain copy print?
- mov ax,2
- sub ax,1
sub指令执行结束后结果不为0,所以ZF=0
11.2 PF标志
标志寄存器的第二位为PF,该标志位为奇偶标志位,其记录相关指令执行结束后结果值的二进制位中1的个数是否为偶数,如果1的个数为偶数,则PF=1。如果1的个数为奇数,则PF=0.
比如:
[plain] view plain copy print?
- mov al,1
- add al,10
执行后,结果为00001011B,其中又三个1,则PF=0
再比如: