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 1 = supervisor mode | 0 = running 1 = idle | Process identifier | Condition code The exact values used to indicate <, =, and > are undefined. | Interrupt mask | Unused | Interruption code |
Last updated on