全球旧事资料 分类
16位标志寄存器共用了9个标志位,它们主要用来反映CPU的状态和运算结果的特征。标志位的分布如下表所示。
32位标志寄存器32位CPU也把标志寄存器扩展到32位,记为EFLAGS。它新增加了四个控制标志位,它们是:IOPL、NT、RF和VM,这些标志位在实方式下不起作用。其它标志位的位置和作用与先前的完全相同。其主要标志位的分布如上表所示。一、运算结果标志位1、进位标志CFCarryFlag进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。使用该标志位的情况有:多字字节数的加减运算,无符号数的大小比较运算,移位操作,字字节之间移位,专门改变CF值的指令等。2、奇偶标志PFParityFlag奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。利用PF可进行奇偶校验检查,或产生奇偶校验位。在数据传送过程中,为了提供传送的可靠性,如果采用奇偶校验的方法,就可使用该标志位。
f3、辅助进位标志AFAuxiliaryCarryFlag在发生下列情况时,辅助进位标志AF的值被置为1,否则其值为0:1、在字操作时,发生低字节向高字节进位或借位时;2、在字节操作时,发生低4位向高4位进位或借位时。对以上6个运算结果标志位,在一般编程情况下,标志位CF、ZF、SF和OF的使用频率较高,而标志位PF和AF的使用频率较低。4、零标志ZFZeroFlag零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为0时,可使用此标志位。5、符号标志SFSig
Flag符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。6、溢出标志OFOverflowFlag溢出标志OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。“溢出”和“进位”是两个不同含义的概念,不要混淆。如果不太清楚的话,请查阅《计算机组成原理》课程中的有关章节。二、状态控制标志位状态控制标志位是用来控制CPU操作的,它们要通过专门的指令才能使之发生改变。
f1、追踪标志TFTrapFlag当追踪标志TF被置为1时,CPU进入单步执行方式,即每执行一条指令,产生一个单步中断请求。这种方式主要用于程r
好听全球资料 返回顶部