Earlier versions of Spim implemented the MIPS-I instruction set used on the MIPS R2000/R3000 computers.
MARS and Spim now support the more modern MIPS32 architecture, which is the MIPS-I instruction set augmented with a large number of occasionally useful instructions.
R2000 is obsolete now, but has never been surpassed for its simplicity and elegance.
The programmer’s model of MIPS R2000 is shown on the right.
It has 32 general-purpose registers, $0 ... $31.
PC (program counter),
which contains the address of the current machine instruction
Instruction register,
which stores the instruction currently being executed
MAR (memory address register),
which holds the address of the memory location where the next instruction is to be executed
MDR (memory data register),
which contains the data to be stored in the computer storage (e.g., RAM), or the data after a fetch from the computer storage.
It acts like a buffer and holds anything that is copied from the memory ready for the processor to use it.