0x00400060 --- address of data 0x00400000 --- address in $10 $8 --- destination register
The instruction is:
Here is the machine code version of the instruction. It specifies the base register, the destination register, and the offset. It does not directly contain the memory address.
100011 01010 01000 0000 0000 0110 0000 -- fields of the instruction lw $10 $8 0 0 6 0 opcode base dest offset -- meaning of the fields lw $8, 0x60($10) -- assembly language
Here is how this instruction is executed:
$8 = The 4 bytes.
There is a one machine cycle delay before the data from memory is available.
Reaching outside of the processor chip into main memory takes time.
But the processor does not wait
and executes one more instruction while the load is going on.
This is the load delay slot.
The instruction immediately after a
should not use the register that is being loaded.
Sometimes the instruction after the
is a no-operation instruction.