Instruction | Opcode/Function | Syntax | Operation |
---|---|---|---|
add | 100000 | f $d, $s, $t | $d = $s + $t |
addu | 100001 | f $d, $s, $t | $d = $s + $t |
addi | 001000 | f $d, $s, i | $d = $s + SE(i) |
addiu | 001001 | f $d, $s, i | $d = $s + SE(i) |
and | 100100 | f $d, $s, $t | $d = $s & $t |
andi | 001100 | f $d, $s, i | $t = $s & ZE(i) |
div | 011010 | f $s, $t | lo = $s / $t; hi = $s % $t |
divu | 011011 | f $s, $t | lo = $s / $t; hi = $s % $t |
mult | 011000 | f $s, $t | hi:lo = $s * $t |
multu | 011001 | f $s, $t | hi:lo = $s * $t |
nor | 100111 | f $d, $s, $t | $d = ~($s | $t) |
or | 100101 | f $d, $s, $t | $d = $s | $t |
ori | 001101 | f $d, $s, i | $t = $s | ZE(i) |
sll | 000000 | f $d, $t, a | $d = $t << a |
sllv | 000100 | f $d, $t, $s | $d = $t << $s |
sra | 000011 | f $d, $t, a | $d = $t >> a |
srav | 000111 | f $d, $t, $s | $d = $t >> $s |
srl | 000010 | f $d, $t, a | $d = $t >>> a |
srlv | 000110 | f $d, $t, $s | $d = $t >>> $s |
sub | 100010 | f $d, $s, $t | $d = $s - $t |
subu | 100011 | f $d, $s, $t | $d = $s - $t |
xor | 100110 | f $d, $s, $t | $d = $s ^ $t |
xori | 001110 | f $d, $s, i | $d = $s ^ ZE(i) |
Instruction | Opcode/Function | Syntax | Operation |
---|---|---|---|
lhi | 011001 | o $t, immed32 | HH ($t) = i |
llo | 011000 | o $t, immed32 | LH ($t) = i |
Instruction | Opcode/Function | Syntax | Operation |
---|---|---|---|
slt | 101010 | f $d, $s, $t | $d = ($s < $t) |
sltu | 101001 | f $d, $s, $t | $d = ($s < $t) |
slti | 001010 | f $d, $s, i | $t = ($s < SE(i)) |
sltiu | 001001 | f $d, $s, i | $t = ($s < SE(i)) |
Instruction | Opcode/Function | Syntax | Operation |
---|---|---|---|
beq | 000100 | o $s, $t, label | if ($s == $t) pc += i << 2 |
bgtz | 000111 | o $s, label | if ($s > 0) pc += i << 2 |
blez | 000110 | o $s, label | if ($s <= 0) pc += i << 2 |
bne | 000101 | o $s, $t, label | if ($s != $t) pc += i << 2 |
Instruction | Opcode/Function | Syntax | Operation |
---|---|---|---|
j | 000010 | o label | pc += i << 2 |
jal | 000011 | o label | $31 = pc; pc += i << 2 |
jalr | 001001 | o labelR | $31 = pc; pc = $s |
jr | 001000 | o labelR | pc = $s |
Instruction | Opcode/Function | Syntax | Operation |
---|---|---|---|
lb | 100000 | o $t, i ($s) | $t = SE (MEM [$s + i]:1) |
lbu | 100100 | o $t, i ($s) | $t = ZE (MEM [$s + i]:1) |
lh | 100001 | o $t, i ($s) | $t = SE (MEM [$s + i]:2) |
lhu | 100101 | o $t, i ($s) | $t = ZE (MEM [$s + i]:2) |
lw | 100011 | o $t, i ($s) | $t = MEM [$s + i]:4 |
Instruction | Opcode/Function | Syntax | Operation |
---|---|---|---|
sb | 101000 | o $t, i ($s) | MEM [$s + i]:1 = LB ($t) |
sh | 101001 | o $t, i ($s) | MEM [$s + i]:2 = LH ($t) |
sw | 101011 | o $t, i ($s) | MEM [$s + i]:4 = $t |
Instruction | Opcode/Function | Syntax | Operation |
---|---|---|---|
mfhi | 010000 | f $d | $d = hi |
mflo | 010010 | f $d | $d = lo |
mthi | 010001 | f $s | hi = $s |
mtlo | 010011 | f $s | lo = $s |
Instruction | Opcode/Function | Syntax | Operation |
---|---|---|---|
trap | 011010 | o i | Dependent on OS; different values for immed26 specify different operations. |