The program status word[a] (PSW) is a register that performs the function of a status register and program counter, and sometimes more. The term is also applied to a copy of the PSW in storage. This article only discusses the PSW in the IBM System/360[1] and its successors,[2][3][4][5][6] and follows the IBM convention of numbering bits starting with 0 as the leftmost (most significant) bit.
Although certain fields within the PSW may be tested or set by using non-privileged instructions, testing or setting the remaining fields may only be accomplished by using privileged instructions.
Contained within the PSW are the two bit condition code, representing zero, positive, negative, overflow, and similar flags of other architectures' status registers. Conditional branch instructions test this encoded as a four bit value, with each bit representing a test of one of the four condition code values, 23 + 22 + 21 + 20. (Since IBM uses big-endian bit numbering, mask value 8 selects code 0, mask value 4 selects code 1, mask value 2 selects code 2, and mask value 1 selects code 3.)
In the early instances of the architecture (System/360 and early System/370), the instruction address was 24[b] bits; in later instances (XA/370), the instruction address was 31 bits plus a mode bit (24 bit addressing mode if zero; 31 bit addressing mode if one) for a total of 32 bits.
In the present instances of the architecture (z/Architecture), the instruction address is 64 bits and the PSW itself is 128 bits.
The PSW may be loaded by the LOAD PSW instruction (LPSW or LPSWE). Its contents may be examined with the Extract PSW instruction (EPSW).
Format
edit
S/360
edit
On all but 360/20,[c] the PSW has the following formats. S/360 Extended PSW format only applies to the 360/67 with bit 8 of control register 6 set.
IBM S/360 PSW formats
S/360 Standard PSW[11]
System Mask
Key
A
M
W
P
Interruption Code[12]
0
7
8
11
12
13
14
15
16
31
ILC
CC
Program Mask
Instruction Address
32
33
34
35
36
39
40
63
S/360 Standard PSW abbreviations
Bits
Field
Meaning
0-7
SM
System Mask
Bit
Meaning
0
Channel 0 mask
1
Channel 1 mask
2
Channel 2 mask
3
Channel 3 mask
4
Channel 4 mask
5
Channel 5 mask
6
Channel 6 mask
7
External Mask
8-11
Key
PSW key
12
A
ASCII
13
M
Machine-check mask
14
W
Wait state
15
P
Problem state
16-31
IC
Interruption Code[13]
32-33
ILC
Instruction-Length Code[14]
34-35
CC
Condition Code
36-39
PM
Program Mask
Bit
Meaning
36
Fixed-point overflow
37
Decimal overflow
38
Exponent underflow
39
Significance
40-63
IA
Instruction Address
S/360 Extended PSW[15]
spare
24/32 Bit Mode
Tran Ctrl
I/O Mask
Ext. Mask
Key
A
M
W
P
ILC
CC
Program Mask
spare
0
3
4
5
6
7
8
11
12
13
14
15
16
17
18
19
20
23
24
31
Instruction Address
32
63
S/360 Extended PSW abbreviations
Bits
Field
Meaning
0-3
Spare (must be 0)
4
24/32-bit Address mode
5
Translation Control
6
IO
I/O Mask (Summary)
7
EX
External Mask (Summary)
8-11
Key
Protection Key
12
A
ASCII
13
M
Machine-check mask
14
W
Wait state
15
P
Problem state
16-17
ILC
Instruction-Length Code[16]
18-19
CC
Condition Code
20-23
PM
Program Mask
Bit
Meaning
20
Fixed-point overflow
21
Decimal overflow
22
Exponent underflow
23
Significance
24-31
Spare
32-63
IA
Instruction Address
S/370
edit
IBM S/370 PSW formats
S/370 Basic Control mode PSW[17]
Chan. Mask
I O
E X
Key
0
M
W
P
Interruption Code
0
1
2
4
5
6
7
8
11
12
13
14
15
16
31
ILC
CC
Program Mask
Instruction Address
32
33
34
35
36
39
40
63
S/370 BC mode PSW abbreviations
Bits
Field
Meaning
0-5
Channel Masks for channels 0-5
6
IO
I/O Mask for channels > 5
7
EX
External Mask
8-11
Key
PSW key
12
E=0
Basic Control mode
13
M
Machine-check mask
14
W
Wait state
15
P
Problem state
16-31
IC
Interruption Code[18]
32-33
ILC
Instruction-Length Code[19]
34-35
CC
Condition Code
36-39
PM
Program Mask
Bit
Meaning
36
Fixed-point overflow
37
Decimal overflow
38
Exponent underflow
39
Significance
40-63
IA
Instruction Address
S/370 Extended Control mode PSW[20]
0
R
0
0
0
T
I O
E X
Key
1
M
W
P
S
0
CC
Program Mask
0
0
0
0
0
0
0
0
0
1
2
4
5
6
7
8
11
12
13
14
15
16
17
18
19
20
23
24
31
0
0
0
0
0
0
0
0
Instruction Address
32
39
40
63
S/370 EC mode PSW abbreviations
Bits
Field
Meaning
1
R
PER Mask
5
T
DAT mode
6
IO
I/O Mask; subject to channel mask in CR2
7
EX
External Mask; subject to external subclass mask in CR0
8-11
Key
PSW key
12
E=1
Extended Control mode
13
M
Machine-check mask
14
W
Wait state
15
P
Problem state
16
S
Address-Space Control 0=primary-space mode 1=Secondary-space mode
18-19
CC
Condition Code
20-23
PM
Program Mask
Bit
Meaning
20
Fixed-point overflow
21
Decimal overflow
22
Exponent underflow
23
Significance
40-63
IA
Instruction Address
S/370 Extended Architecture (S/370-XA)
edit
IBM Extended Architecture (XA) PSW format
Extended Architecture Extended Control mode PSW[21]
0
R
0
0
0
T
I O
E X
Key
1
M
W
P
S
0
CC
Program Mask
0
0
0
0
0
0
0
0
0
1
2
4
5
6
7
8
11
12
13
14
15
16
17
18
19
20
23
24
31
A
Instruction Address
32
33
63
S/370-XA EC mode PSW abbreviations
Bits
Field
Meaning
1
R
PER Mask
5
T
DAT mode
6
IO
I/O Mask; subject to channel mask in CR2
7
EX
External Mask; subject to external subclass mask in CR0
8-11
Key
PSW key
12
E=1
Extended Control mode
13
M
Machine-check mask
14
W
Wait state
15
P
Problem state
16
S
Address-Space Control 0=primary-space mode 1=Secondary-space mode
18-19
CC
Condition Code
20-23
PM
Program Mask
Bit
Meaning
20
Fixed-point overflow
21
Decimal overflow
22
Exponent underflow
23
Significance
32
A
Addressing mode 0=24 bit; 1=31 bit
33-63
IA
Instruction Address
Enterprise Systems Architecture (ESA)
edit
IBM Enterprise Systems Architecture (ESA) PSW format
Enterprise Systems Architecture Extended Control mode PSW[22][23]
0
R
0
0
0
T
I O
E X
Key
1
M
W
P
AS
CC
Program Mask
0
0
0
0
0
0
0
0
0
1
2
4
5
6
7
8
11
12
13
14
15
16
17
18
19
20
23
24
31
A
Instruction Address
32
33
63
ESA EC mode PSW abbreviations
Bits
Field
Meaning
1
R
PER Mask
5
T
DAT mode
6
IO
I/O Mask; subject to channel mask in CR2
7
EX
External Mask; subject to external subclass mask in CR0
8-11
Key
PSW key
12
E=1
Extended Control mode
13
M
Machine-check mask
14
W
Wait state
15
P
Problem state
16-17
AS
Address-Space Control 00=primary-space mode 01=Access-register mode 10=Secondary-space mode 11=Home-space mode
^However, a 360/67[7] equipped with the Extended Dynamic Address Translation[8]
feature has a 32-bit mode selected by bit 4 of the PSW[9] in Extended PSW mode[8] (Control Register 6, bit 8[10]).
^Despite the name, the 350/20 does not adhere to the S/360 architecture.
^Bit 22 is renamed as HFP exponent underflow in ESA/390