标志寄存器又称程序状态字(外语缩写:PSW、外语全称:Program Status Word)。

这是一个16位的存放条件标志、控制标志寄存器,主要用于反映处理器的状态ALU运算结果的某些特征控制指令的执行

标志寄存器是16位的寄存器。但实际上8086只用到9位,其中的6位是状态标识位,3位是控制标识位。状态标志位分别是CF,PF,AF,ZF,SF和OF;控制标志位包括DF,IF,TF。

CF(Carry Flag):进位标志位。在无符号运算时,记录了运算结果的最高有效位向更高位的进位值或从更高位借位,产生进位或借位时CF=1,否则CF=0;

PF(Parity Flag):奇偶标志位。相关指令执行后结果所有bit中1的个数为偶数,那么PF=1,1的个数为奇数则PF=0;

AF(Auxiliary Carry Flag):辅助进位标志位。运算过程中看最后四位,不论长度为多少。最后四位向前有进位或者借位,AF=1,否则AF=0;

ZF(Zero Flag):零标志位。相关指令执行后结果为0那么ZF=1,结果不为0则ZF=0;

SF(Sign Flag):符号标志位。相关指令执行后结果为负那么SF=1,结果非负数则SF=0;

TF(Trace Flag):调试标志位。当TF=1时,处理器每次只执行一条指令,即单步执行;

IF(Interrupt Flag):中断允许标志位。它用来控制8086是否允许接收外部中断请求。若IF=1,8086能响应外部中断,反之则屏蔽外部中断;

DF(Direction Flag):方向标志位。在串处理指令中,每次操作后,如果DF=0,si、di递增,如果DF=1,si、di递减;注意此处DF的值是由程序员进行设定的cld命令是将DF设置为0,std命令是将DF设置为1;

OF(Over Flow Flag):溢出标志位。记录了有符号运算的结果是否发生了溢出,如果发生溢出OF=1,如果没有OF=0;

©著作权归作者所有

发表评论

正在加载 Emoji