IBM 1401 registers

Address registers

The IBM 1401 processor has three address registers that the program can affect, and one optional address register the program cannot affect or examine. All address registers can be examined from the console.

Index registers are actually memory fields, not proper registers.

I-address register

The I-address register contains the instruction address. It is incremented by the normal sequence of instruction execution, or changed by a branching instruction.

A-address register

The A-address register contains the address of the first operand of an operation. It is initially set from the A field of an instruction, and may be changed during execution of the instruction.

B-address register

The B-address register contains the address of the second operand and/or destination result of an operation. It is initially set from the B field of an instruction, and may be changed during execution of the instruction. If the advanced programming feature is installed, after an instruction that branches is executed, it contains the address following the branch instruction. This is useful for subroutine linkage.

O-address register

If the process overlap special feature is installed, the 1401 processor includes the O-address register, which is used during overlapped input/output operations. It is not affected by and cannot be examined by the program.

Data registers

The 1401 processor includes three one-character data registers. They are used during instruction execution but cannot be otherwise affected or examined by the program.

B register

The B register is the register through which all data pass between the processor and memory.

A register

The A register contains a character from the first operand of an operation. During instruction fetching the B register is copied to the A register.

OP register

The OP register contains the instruction OP code.

Instruction length register

The instruction length register contains the instruction length.