A program has just calculated an important value which is contained in register $8. The program now calls a function to print out the value. What might be in $8 upon return?

A good answer might be:

The register will contain an unpredictable value, since $8 is also $t0 a non-preserved temporary.

Model Machine Cycle

Of course as long as an executing program makes no function calls the values in the temporary registers are safe.

The MIPS assembly programming model includes a machine cycle (repeated here from chapter one). The MIPS endlessly cycles through three basic steps. Each cycle executes one machine instruction. Everything the processor does is done by a sequence of machine operations. So, also, everything any program does is ultimately done by machine operations.

Fetch the next Instruction. The program counter contains the address of the next machine instruction. The instruction is fetched from memory.
Increment the PC. The address in the program counter is incremented by four.
Execute the Instruction. The machine operation specified by the instruction is performed.

QUESTION 8:

Why is the program counter (PC) incremented by four each time?