Registers
SIC and SIC/XE machines have several 24-bit registers for various purposes.
Letter | ID | Purpose | SIC/XE only |
|---|---|---|---|
A | 0 | Accumulator, used for basic arithmetic operations. | |
X | 1 | Index, stores and calculates addresses. Often incremented in loops. | |
L | 2 | Linkage, set by JSUB and used by RSUB. | |
PC | 8 | Program counter, contains the address of the next instruction to execute. Used for program counter-relative addressing. Jumps write to this register. | |
SW | 9 | Status word, contains a variety of information like carry, overflow, and condition code flags. See section below. | |
B | 3 | Base, used for base-relative addressing. | ✓ |
S | 4 | General purpose. | ✓ |
T | 5 | General purpose. | ✓ |
F | 6 | Register for floating-point operations. This is 48 bits instead of the usual 24. | ✓ |
Status Word (SW) register
The status word SW contains several pieces of information that are important in the handling of interrupts and other instructions. A reference of its bits is provided below.
Name | MODE | IDLE | ID | CC | MASK | ICODE | |
|---|---|---|---|---|---|---|---|
Bit position | 0 | 1 | 2-5 | 6-7 | 8-11 | 12-15 | 16-23 |
Details | 0 = user mode | 0 = running | Process identifier | Condition code | Interrupt mask | Unused | Interruption code |