psw是什么

嵌入式操作系统

57人已加入

描述

  psw的定义

  PSW即程序状态字(也叫程序状态寄存器)Program Status Word,可用于OS在管态(系统态)和目态(用户态)之间的转换。

  程序状态寄存器PSW是计算机系统的核心部件——运算器的一部分,PSW用来存放两类信息:一类是体现当前指令执行结果的各种状态信息,称为状态标志,如有无借位进位(CY位)、有无溢出(OF位)、结果正负(SF位)、结果是否为零(ZF位)、奇偶标志位(PF位)等;另一类是存放控制信息,称为控制状态,如允许中断(IF位),跟踪标志(TF位),方向标志(DF)等。有些机器中将PSW称为标志寄存器FR(Flag Register)。

  在8086/8088CPU中,PSW是一个16位寄存器,用于寄存单签指令执行后的某些状态,即反映指令执行结果的一些特征信息。在debug程序中,可以使用R命令来查看PSW的值,除了TF没有显示之外,其它8个标志的值显示方式如下:

  psw的标志名

寄存器

  设置 nv(清除) ov(溢出)

  方向 dn(减) up(增)

  中断 ei(启用) di(禁用)

  正负 ng(负) pl(正)

  零 zr(0) nz(非0)

  辅助进位 ac(进位) na(不进位)

  奇偶校验 pe(偶校验) po(奇校验)

  进位 cy(进位) nc(不进位)

  如:

  OV DN EI NG ZR AC PE CY依次表示OF DF IF SF ZF AF PF CF都为1;

  NV UP DI PL NZ NA PO NC依次表示OF DF IF SF ZF AF PF CF都为0.

  PSW各位的定义

寄存器

  CY:进位标志。8051中的运算器是一种8位的运算器,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误。通过它让最高位就进到这里来。这样就没事了。有进、借位,CY=1;无进、借位,CY=0  例:78H+97H(01111000+10010111)

  AC:辅助进、借位(高半字节与低半字节间的进、借位)。

  例:57H+3AH(01010111+00111010)

  F0:用户标志位

  由用户(编程人员)决定什么时候用,什么时候不用。

  RS1、RS0:工作寄存器组选择位

  通过修改PSW中的RS1、RS0两位的状态,就能任选一个工作寄存器区。这个特点提高了MCS-51现场保护和现场恢复的速度。对于提高CPU的工作效率和响应中断的速度是很有利的。若在一个实际的应用系统中,不需要四组工作寄存器,那么这个区域中多余单元可以作为一般的数据缓冲器使用。

  0V:溢出标志位

  运算结果按补码运算理解。有溢出,OV=1;无溢出,OV=0。什么是溢出我们后面的章节会讲到。

  P:奇偶校验位

  它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,否则为0。运算结果有奇数个1,P=1;运算结果有偶数个1,P=0。  例:某运算结果是78H(01111000),显然1的个数为偶数,所以P=0。

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

全部0条评论

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

×
20
完善资料,
赚取积分