第十一章 标志寄存器
有这样 3 种作用的特殊的寄存器,在 8086CPU 种被称为标志寄存器:
- 用来存储相关指令的某些执行结果;
- 用来为 CPU 执行相关指令提供行为依据;
- 用来控制 CPU 的相关工作方式。
8086CPU 的标志寄存器有 16 位,其中存储的信息通常被称为程序状态字(PSW)。
flag 寄存器是按位起作用的,即每一位都有专门的含义,区别于其他存放数据的寄存器。
![4e43fd5acef06eb1eafa896a694d28cc.png](https://i-blog.csdnimg.cn/blog_migrate/f7571b3bdea86b751526d1a5b4a2355b.jpeg)
11.1 ZF 标志
flag 的第 6 位,零标志位。记录相关指令执行后,结果是否为 0,是则 zf=1,反之,zf=0。
在 8086CPU 的指令集种,有的指令是影响标志寄存器的逼入,add、sub、mul、div、inc、or、and 等,大多是运算指令;有的指令的执行对标志寄存器没有影响,比如,mov、push、pop等,大多是传送指令。
11.2 PF 标志
flag 的第 2 位,奇偶标志位。记录相关指令执行后,其结果的所有 bit 位中 1 的个数是否为偶数。若 1 的个数位偶数,pf=1,若为奇数,那么 pf=0。
11.3 SF 标志
flag