CPU内部的寄存器中,有一种特殊的寄存器(对于不同的机器,个数和结构都有可能不同)具有以下三个功能:
- 用来存储某些相关指令的执行结果
- 用来为CPU执行相关的指令提供行为依据
- 用来控制CPU的相关工作方式
这种特殊的寄存器在8086CPU中称为标志寄存器。8086的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW)。
标志寄存器与其他寄存器不一样,其他寄存器是用来放数据的,都是整个寄存器具有一个含义,而标志寄存器是按位起作用的。
8086中的标志寄存器的结构如下图所示:
其中1、3、4、12、13、14、15位在8086中没有使用。另外对于有确切含义的每一位,我们称为标志位
ZF标志
标志寄存器的第六位是ZF,零标志位。他是记录相关指令执行后,其结果是否位零。如果为零,那么zf=1,如果不为零,那么zf=0
比如指令:
mov ax, 1
sub ax, 1
执行后,ax的结果为0,所以zf=1
再比如:
mov ax, 2
sub ax, 1
<