Source:
| Number | Name | Use | Preserved across function calls? |
|---|---|---|---|
| 0 | $zero |
constant 0 | — |
| 1 | $at |
assembler temporary | no |
| 2, 3 | $v0, $v1 |
function return values | no |
| 4 - 7 | $a0 - $a3 |
function arguments | no |
| 8 - 15 | $t0 - $t7 |
temporaries | no |
| 16 - 23 | $s0 - $s7 |
temporaries | yes |
| 24, 25 | $t8, $t9 |
temporaries | no |
| 26, 27 | $k0, $k1 |
reserved for OS kernel | — |
| 28 | $gp |
global pointer | — |
| 29 | $sp |
stack pointer | — |
| 30 | $s8 |
temporaries | yes |
| 31 | $ra |
return address | — |
If you could revise
the fundmental principles of
computer system design
to improve security...
... what would you change?