There are 32 registers in MIPS.

In Register File

Value Storage

  • $t0 - $t9: temporaries
  • $s0 - $s9: saved temporaries

Special

  • $zero: will always hold 0. All writes will be discarded
  • $at: reserved for the assembler
  • $gp: global pointer
  • $sp: stack pointer
  • $fp: frame pointer (like Base Pointer)
  • $ra: return address
  • $k0, $k1: reserved for the Kernel

Function Parameters

  • $v0, $v1: return values
  • $a0 - $a3: function arguments

Not in Register File