欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

8086标志寄存器(Flag Register)

程序员文章站 2022-06-08 19:14:31
...

标志寄存器设计为16位,实际使用9位,其中6位用以存放算术逻辑单元运算后的结果特征,称为状态标志;另外3位通过人为设置,用以控制8086的三种特定操作,称为控制标志

8086标志寄存器(Flag Register)
6个状态标志位定义如下:
8086标志寄存器(Flag Register)

进位标志:用于反映运算是否产生进位或借位。如果运算结果的最高位产生一个进位或借位,则CF置1,否则置0。运算结果的最高位包括字操作的第15位和字节操作的第7位。移位指令也会将操作数的最高位或最低位移入CF。
奇偶标志:用于反映运算结果低8位中“1”的个数。“1”的个数为偶数,则PF置1,否则置0。
辅助进位标志:算数操作结果的第三位(从0开始计数)如果产生了进位或者借位则将其置为1,否则置为0,常在BCD(binary-codedecimal)算术运算中被使用。
零标志:用于判断结果是否为0。运算结果0,ZF置1,否则置0。
符号标志:用于反映运算结果的符号,运算结果为负,SF置1,否则置0。因为有符号数采用补码的形式表示,所以SF与运算结果的最高位相同。
溢出标志:反映有符号数加减运算是否溢出。如果运算结果超过了8位或者16位有符号数的表示范围,则OF置1,否则置0。

3个控制标志位定义如下:
8086标志寄存器(Flag Register)

跟踪标志:当TF被设置为1时,CPU进入单步模式,所谓单步模式就是CPU在每执行一步指令后都产生一个单步中断。主要用于程序的调试。8086/8088中没有专门用来置位和清零TF的命令,需要用其他办法。
中断标志:决定CPU是否响应外部可屏蔽中断请求。IF为1时,CPU允许响应外部的可屏蔽中断请求。
方向标志:决定串操作指令执行时有关指针寄存器调整方向。当DF为1时,串操作指令按递减方式改变有关存储器指针值,每次操作后使SI、DI递减。

例子

01001100B+01100101B

	01001100B
	01100101B
得:10110001
CF=0	PF=1	AF=1
ZF=0	SF=1	OF=1
相关标签: 标志寄存器