标志寄存器的作用

cpu

18人已加入

描述

  标志寄存器中存放的有条件标志,也有控制标志,它对于处理器的运行和整个过程的控制有着非常重要的作用。条件标志主要包括进位标志、奇偶标志、辅助进位标志、零标志、符号标志、溢出标志等等,控制标志主要有跟踪标,下面就随小编一起去了解一下关于标志寄存器的相关知识吧。

  标志寄存器标志位置

  进位标志:

  用于反映运算是否产生进位或借位。如果运算结果的最高位产生一个进位或借位,则CF置1,否则置0。运算结果的最高位包括字操作的第15位和字节操作的第7位。移位指令也会将操作数的最高位或最低位移入CF。

  奇偶标志:用于反映运算结果低8位中“1”的个数。“1”的个数为偶数,则PF置1,否则置0。

  辅助进位标志:在字节操作时低半字节向高半字节进位或借位,字操作时低字节向高字节进位或借位,AF置1,否则置0。

  零标志:用于判断结果是否为0。运算结果0,ZF置1,否则置0。

  符号标志:用于反映运算结果的符号,运算结果为负,SF置1,否则置0。因为有符号数采用补码的形式表示,所以SF与运算结果的最高位相同。

  溢出标志:反映有符号数加减运算是否溢出。如果运算结果超过了8位或者16位有符号数的表示范围,则OF置1,否则置0。

  控制标志:

  跟踪标志:当TF被设置位1时,CPU进入单步模式,所谓单步模式就是CPU在每执行一步指令后都产生一个单步中断。主要用于程序的调试。8086/8088中没有专门用来置位和清零TF的命令,需要用其他办法。

  中断标志:决定CPU是否响应外部可屏蔽中断请求。IF为1时,CPU允许响应外部的可屏蔽中断请求。

  方向标志:决定串操作指令执行时有关指针寄存器调整方向。当DF为1时,串操作指令按递减方式改变有关存储器指针值,每次操作后使SI、DI递减。

  

标志

  标志寄存器中状态标志的作用是什么

  标志寄存器里面有标志位用来判断CPU的状态:

  比如:OF: 溢出标志位OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0.

  DF: 方向标志DF位用来决定在串操作指令执行时有关指针寄存器发生调整的方向。

  IF: 中断允许标志IF位用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求。但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部产生的中断请求。具体规定如下:

  (1)、当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求;

  (2)、当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。

  TF: 状态控制标志位是用来控制CPU操作的,它们要通过专门的指令才能使之发生改变

  SF: 符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。

  ZF: 零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为0时,可使用此标志位。

  AF: 下列情况下,辅助进位标志AF的值被置为1,否则其值为0:

  (1)、在字操作时,发生低字节向高字节进位或借位时;

  (2)、在字节操作时,发生低4位向高4位进位或借位时。

  PF: 奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。

  CF: 进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。)

  标志寄存器的作用

  标志寄存器有一个很大的用处,那就是它能够利用上面的标志来让用户了解此时cpu所处的状态。如果标志是of的话,这就是溢出标志,如果符号的加减运算结果超出了所能运算的范围的话,就是溢出了,而且此时of的值就是固定的,也就是1,不是的话,就是0了。标志df是方向标志,这个标志能够指导寄存器指针调整的方向。

  if是中断允许的标志,这个标志的主要用处就在于当cpu的外部有中断请求的话,它能够决定是否针对这一情况予以反应。但是实际运行过程中,对于这种中断要求的反应是不会受到标志值的影响的。tf是状态控制标志,这个标志作用非常重要,因为它主要用来控制cpu,而且它本身非常的稳定,除非会有专门的指令,它才会有所变化。sf是符号的标志,这个标志就是用来反应运算的结果的,但是它也就只能反应运算结果的正负而已,如果是正的话,就为0,如果是负的话,就为1。

  总的来说,标志寄存器的作用主要有三个,分别是存储计算机执行之后的一些结果,提供一些依据给cpu的运行,对于cpu的一些工作的方式给予一定的控制等等。在标志寄存器中有很多的指令,要想了解并且很好的运用标志寄存器,必须要真正的了解这些指令的含义。

  指令中中的pushf、popf,虽然它们很相似,但是功能却大不相同,pushf主要是把值压栈,但是popf主要是将数据从栈中弹出,然后把它们输入寄存器之中,两者可以说是完全相反的。寄存器中还有一类条件转移指令,条件的话,是指是否有需要修改ip的条件,而转移的话,就是修改ip的一个过程,两者结合,才能完成。

  

标志

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分