* Only need the integer instructions Rdest, Rsrc1, Src2 where Src2 is immediate or a register (addu, subu, divu, multu ) * Load/store la Rdest, address load address into register Rdest lw Rdest, address load value at address into Rdest sw Rsrc, address store word from register Rsrc into address * Move move Rdest, Rsrc move contents of Rsrc into Rdest * Control b label branch to label beqz Rsrc, label branch to label if value in Rsrc equals 0 bgeu Rsrc1, Src2, label branch to label if contents of register Rsrc1 is greater than or equal to Src2 similarly bgtu, bleu, bltu j label unconditionally jump to label jal label unconditionally jump to labe and save address of next instruction in $ra * System syscall register $v0 contains number of system call print_int 1 $a0 has integer print_float 2 $f12 = float print_double 3 $f12 = double print_string 4 $a0 has string read_int 5 integer result in $v0 read_float 6 float result in $v0 read_double 7 double result in $v0 read_string 8 $a0 buffer, $a1 length sbrk 9 $a0 amount exit 10 * Pseudoinstructions expand into several machine instructions * registers Register Number Usage $zero 00 constant 0 $at 01 reserved for assembler $v0 02 expression evaluation and results of a function $v1 03 expression evaluation and results of a function $a0 04 argument 1 $a1 05 argument 2 $a2 06 argument 3 $a3 07 argument 4 $t0 08 temporary (not preserved across call) $t1 09 temporary (not preserved across call) $t2 10 temporary (not preserved across call) $t3 11 temporary (not preserved across call) $t4 12 temporary (not preserved across call) $t5 13 temporary (not preserved across call) $t6 14 temporary (not preserved across call) $t7 15 temporary (not preserved across call) $s0 16 saved temporary (preserved across call) $s1 17 saved temporary (preserved across call) $s2 18 saved temporary (preserved across call) $s3 19 saved temporary (preserved across call) $s4 20 saved temporary (preserved across call) $s5 21 saved temporary (preserved across call) $s6 22 saved temporary (preserved across call) $t7 23 saved temporary (preserved across call) $t8 24 temporary (not preserved across call) $t9 25 temporary (not preserved across call) $k0 26 reserved for OS kernel $k1 27 reserved for OS kernel $gp 28 pointer to global area $sp 29 stack pointer $fp 30 frame pointer $ra 31 return address (used by function call)