发布网友 发布时间:2022-04-23 02:18
共5个回答
热心网友 时间:2023-08-09 21:44
程序状态字(Program Status Word, PSW)又称状态寄存器,主要用于反映处理器的状态及某些计算结果以及控制指令的执行。
程序状态字(Program Status Word, PSW)又称状态寄存器,主要用于反映处理器的状态及某些计算结果以及控制指令的执行。用一个专门的寄存器来指示处理器状态。
程序状态字通常包括以下状态代码:
CPU的工作状态码——指明管态还是目态,用来说明当前在CPU上执行的是操作系统还是一般用户,从而决定其是否可以使用特权指令或拥有其它的特殊权力
条件码——反映指令执行后的结果特征
中断屏蔽码——指出是否允许中断
各位的含义如下表格:
热心网友 时间:2023-08-09 21:45
PSW即程序状态字(有些教材也叫程序状态寄存器),Program Status Word热心网友 时间:2023-08-09 21:45
PSW 中,最常用的标志位是进位标志 CY和溢出标志 OV。
进位比较好理解。那么,什么是溢出呢?
一般来说,容器太小,盛不下了,就会溢出。
在计算机方面,溢出,就是数据太大,超出了预定的范围。
数字,在计算机中,都是用机器码代表的。
最常用的是“自然数”和“整数”,其表达范围如下:
机器码,无论代表什么数字,只要运算结果超出预定范围,就是【溢出】。
但是,在计算机专业人的嘴里,就不一样了。
【无符号数的溢出】,不叫溢出,要叫做【进位】。
【带符号数的溢出】,才叫做【溢出】。
搞计算机的这些人,基本概念不清,却自命不凡!
冒充脑回路清奇。。。正常人对此,就只能无语了。
---------------------------
那么,就按照计算机专业的说法吧:
溢出,是指“补码运算结果超出范围”。
溢出的特征,是“符号错误”。
知道了这些,判断是否溢出,就很容易了。
CPU 每次做完运算,就会给出结果和“进位标志位 CY”和“溢出标志位 OV”。
如果 OV=1,就代表:刚刚做的计算,发生了溢出。
人工判断是否溢出,有如下六个方法。
一、无符号数的运算,肯定不会溢出。只有进位。
二、只有:正+正、负+负,才有可能超出范围。不是这些,就绝不会溢出。
三、人工用十进制数值计算。和,如果没有超出范围,就没有溢出。
四、人工用二进制补码计算。和的符号,如果正确,就没有溢出。
五、编个程序,让计算机计算。然后观察溢出标志位,为零,就没有溢出。
六、人工用补码计算,如“最高位的进位”和“次高位的进位”相同,就没有溢出。
第六种,是 CPU 的硬件所用的方法。
硬件,其理论基础,是很晦涩难懂的。
异或运算,一般也不需要初学者掌握。
但是,一些爱得瑟的老师,偏爱介绍这种方法。
却又拿不出任何的理论!
其实,这是很无聊的表现,就是想着难为学生。
热心网友 时间:2023-08-09 21:46
单片机书上写的那么详细,自己看吧。建议热心网友 时间:2023-08-09 21:46
用来保存指令执行结果的标志,供程序查询和判别