程序状态字
目录
程序状态字
程序状态字 (PSW) 是一个寄存器,它执行状态寄存器和程序计数器的功能,有时甚至更多。 该术语也适用于存储中的 PSW 副本。 本文仅讨论 IBM System/360 及其后继者中的 PSW,并遵循 IBM 以 0 开头的位编号约定作为最左边(最高有效位)的位。
虽然 PSW 中的某些字段可以使用非特权指令进行测试或设置,但测试或设置其余字段只能使用特权指令来完成。
PSW 中包含两位条件代码,代表零、正、负、溢出和其他架构状态寄存器的类似标志。 条件分支指令测试此编码为四位值,每一位代表对四个条件代码值之一的测试,23 + 22 + 21 + 20。(由于 IBM 使用大端位编号,掩码值 8 选择代码 0,掩码值4选择代码1,掩码值2选择代码2,掩码值1选择代码3。)
64 位 PSW 描述(除其他外)
- 中断掩码
- 特权状态
- 条件码
- 指令地址
在架构的早期实例(System/360 和早期的 System/370)中,指令地址是 24 位; 在后来的实例 (XA/370) 中,指令地址是 31 位加上一个模式位(如果为零则为 24 位寻址模式;如果为一则为 31 位寻址模式)总共 32 位。
在架构 (z/Architecture) 的当前实例中,指令地址是 64 位,而 PSW 本身是 128 位。
PSW 可以通过 LOAD PSW 指令(LPSW 或 LPSWE)加载。 可以使用提取 PSW 指令 (EPSW) 检查其内容。
格式
S/360
除了 360/20,PSW 具有以下格式。 S/360 扩展 PSW 格式仅适用于设置了控制寄存器 6 的位 8 的 360/67。
8-11KeyPSW key12AASCII13MMmachine-check mask14W等待状态15P问题状态16-31IC中断代码32-33ILC指令长度代码34-35CC条件代码36-39PM
40-63IA指令地址
24-31
备用32-63IA指令地址
S/370
40-63IA指令地址
40-63IA指令地址
S/370 扩展架构 (S/370-XA)
32A寻址方式0=24位; 1=31 bit33-63IA指令地址
32A寻址方式0=24位; 1=31 bit33-63IA指令地址

z/架构
24RIReserved for IBM31EAExtended Addressing mode0=由下面的BA定义; 1=64位,BA必须为032BA基本寻址方式0=24或64; 1=3164-127IA指令地址
24RIReserved for IBM31EAExtended Addressing mode0=由下面的BA定义; 1=64位,BA必须为032BA基本寻址方式0=24或64; 1=3133-63IA指令地址