La palabra de estado del programa [a] ( PSW ) es un registro que realiza la función de registro de estado y contador de programa , y a veces más. El término también se aplica a una copia del PSW almacenada. Este artículo solo analiza el PSW en IBM System/360 [1] y sus sucesores, [2] [3] [4] [5] [6] y sigue la convención de IBM de numerar bits que comienzan con 0 como el extremo izquierdo (el más significativo) poco.
Aunque ciertos campos dentro del PSW se pueden probar o configurar mediante instrucciones sin privilegios, la prueba o configuración de los campos restantes solo se puede lograr mediante instrucciones privilegiadas.
Dentro del PSW se encuentra el código de condición de dos bits , que representa indicadores cero, positivo, negativo, desbordamiento y similares de los registros de estado de otras arquitecturas . Las instrucciones de rama condicional prueban esto codificado como un valor de cuatro bits, y cada bit representa una prueba de uno de los cuatro valores del código de condición, 2 3 + 2 2 + 2 1 + 2 0 . (Dado que IBM utiliza numeración de bits big-endian, el valor de máscara 8 selecciona el código 0, el valor de máscara 4 selecciona el código 1, el valor de máscara 2 selecciona el código 2 y el valor de máscara 1 selecciona el código 3.)
El PSW de 64 bits describe (entre otras cosas)
En las primeras instancias de la arquitectura (System/360 y principios de System/370), la dirección de instrucción era de 24 [b] bits; en instancias posteriores (XA/370), la dirección de instrucción era de 31 bits más un bit de modo (modo de direccionamiento de 24 bits si es cero; modo de direccionamiento de 31 bits si es uno) para un total de 32 bits.
En los casos actuales de la arquitectura ( z/Architecture ), la dirección de instrucción es de 64 bits y el PSW en sí es de 128 bits.
El PSW puede cargarse mediante la instrucción LOAD PSW ( LPSW o LPSWE). Su contenido puede examinarse con la instrucción Extraer PSW (EPSW).
En todos menos 360/20 , [c] el PSW tiene los siguientes formatos. El formato PSW extendido S/360 solo se aplica al 360/67 con el bit 8 del registro de control 6 configurado.