# Register Use Chart

Register Number | Mnemonic Name | Conventional Use |  | Register Number | Mnemonic Name | Conventional Use
--- | --- | --- | --- | --- | --- | ---
$0 | zero | Permanently 0 |  | $24, $25 | $t8, $t9 | Temporary
$1 | $at | Assembler Temporary (reserved) |  | $26, $27 | $k0, $k1 | Kernel (reserved for OS)
$2, $3 | $v0, $v1 | Value returned by a subroutine |  | $28 | $gp | Global Pointer
$4-$7 | $a0-$a3 | Arguments to a subroutine |  | $29 | $sp | Stack Pointer
$8-$15 | $t0-$t7 | Temporary (not preserved across a function call) |  | $30 | $fp | Frame Pointer
$16-$23 | $s0-$s7 | Saved registers (preserved across a function call) |  | $31 | $ra | Return Address

There are also 32 floating point registers $f0--$f31.

Click here to go back to the main menu.