From 742aeb431f2aececdcd74096d0b13a0a61529a01 Mon Sep 17 00:00:00 2001 From: Jon Michael Aanes Date: Wed, 16 Dec 2015 23:11:42 +0100 Subject: [PATCH] Documented the MPC register. --- registers.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/registers.md b/registers.md index c8c3ae8..fd23b05 100644 --- a/registers.md +++ b/registers.md @@ -18,15 +18,19 @@ signed integer is sign extended from an 8-bit signed integer and thus has the range -128 to 127. #### MBRU -When read as MBRU, the register reads as a 32-bit *unsigned* integer. The 32-bit -signed integer is extended with zeros from an 8-bit *unsigned* integer and thus -has the range 0 to 255. +When read as *Memory Buffer Register Unsigned*, the register reads as a 32-bit +*unsigned* integer. The 32-bit signed integer is extended with zeros from an +8-bit *unsigned* integer and thus has the range 0 to 255. ### OPC The *Old Program Counter* is used to store the old value of the **PC**-register, although it is very commonly used as a *scratch register* for storing other values. +### MPC +The *Micro-Program Counter* point so the current position in the microcode. It +is automatically set after very operation. + Read and write -------------- @@ -72,6 +76,7 @@ The *Hold* register is used to hold the left operand in the operations performed by the ALU. ### Z & N -The *Z* and *N* registers are *virtual registers*. They are automatically set -after any ALU operation. A MAL `if(x)` statement can only accept *Z* and *N* as -input. +The *Zero* and *Negative* registers are *virtual registers*. They are +automatically set after any ALU operation. A MAL `if(x)` statement can only +accept *Z* and *N* as input. *Z* is on if the output of the latest ALU operation +was zero. *N* is on if the output was negative.