This sixteen bit register has subfields which are interpreted as follows:
bits |
description |
14,15 |
current mode (00 = kernel;) |
12,13 |
previous mode (11 = user;) |
5,6,7 |
processor priority (range 0..7) |
4 |
trap bit |
3 |
N, set if the previous |
result was negative |
|
2 |
Z, set if the previous |
result was zero |
|
1 |
V, set if the previous |
result gave an overflow |
|
0 |
C, set if the previous |
operation gave a carry |
The processor can operate in two different modes: kernel and user. Kernel mode is the more privileged of the two and is reserved by the operating system for its own use. The choice of mode determines:
The set of memory management segmentation registers which is used to translate program virtual addresses to physical addresses;
The actual register used as r6, the “stack pointer”;
Whether certain instructions such as “halt” will be obeyed.