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?