add $r, $a, $b - сложение. $r = $a + $b
addu $r, $a, $b - беззнаковое сложение. $r = $a + $b
addi $r, $a, imm - сложение с константой. $r = $a + imm
addiu $r, $a, imm - беззнаковое сложение с константой. $r = $a + imm
sub $r, $a, $b - вычитание. $r = $a - $b
subu $r, $a, $b - беззнаковое вычитание. $r = $a - $b
mult $a, $b - умножение. $a * $b
multu $a, $b - беззнаковое умножение. $a * $b
div $a, $b - деление. $a / $b
divu $a, $b - беззнаковое деление. $a / $b
and $r, $a, $b - побитовое «И». $r = $a & $b
andi $r, $a, imm - побитовое «И» с константой. $r = $a & imm
or $r, $a, $b - побитовое «ИЛИ». $r = $a | $b
ori $r, $a, imm - побитовое «ИЛИ» с константой. $r = $a | imm
xor $r, $a, $b - исключающее «ИЛИ». $r = $a ^ $b
nor $r, $a, $b - отрицающее «ИЛИ». $r = !($a | $b)
sll $r, $a, imm - логический сдвиг влево на константное значение. $r = $a « imm
sllv $r, $a, $b - логический сдвиг влево на переменное значение. Значение сдвига маскируется на 5 бит. $r = $a « ($b & 0x1f)
slr $r, $a, imm - логический сдвиг вправо на константное значение. Верхние биты результата заполняются нулями. $r = $a » imm
srlv $r, $a, $b - логический сдвиг вправо на переменное значение. Верхние биты результата заполняются нулями. Значение сдвига маскируется на 5 бит. $r = $a » ($b & 0x1f)
sra $r, $a, imm - арифметический сдвиг вправо на константное значение. Верхние биты результата заполняются битом знака входного значения. $r = (int)$a » imm
srav $r, $a, $b - арифметический сдвиг вправо на переменное значение. Верхние биты результата заполняются битом знака входного значения. Значение сдвига маскируется на 5 бит. $r = (int)$a » ($b & 0x1f)
lw $r, imm($a) - загружает слово. $r = $a + imm
lh $r, imm($a) - загружает полуслово. $r = $a + imm
lhu $r, imm($a) - загружает беззнаковое полуслово. $r = $a + imm
lb $r, imm($a) - загружает байт. $r = $a + imm
lbu $r, imm($a) - загружает беззнаковый байт. $r = $a + imm
lwl $r, imm($a) - загружает старшие байты слова по невыровненному адресу
lwr $r, imm($a) - загружает младшие байты слова по невыровненному адресу
sw $r, imm($a) - сохраняет слово. $a + imm = $r
sh $r, imm($a) - сохраняет полуслово. $a + imm = $r
sb $r, imm($a) - сохраняет байт. $a + imm = $r
lui $r, imm` - загружает константу в старшие 16 бит слова
Инструкции загрузки не останавливают исполнение программы до тех пор, пока данные не будут доступны. Поэтому, если следующая инструкция зависит от загруженных данных, необходимо вставить слот задержки.
beq $r, $a, imm - переход по константному адресу при равенстве операндов
bne $r, $a, imm - переход по константному адресу при неравенстве операндов
bgez $r, imm - переход по константному адресу, если операнд больше или равен нулю
bltz $r, imm - переход по константному адресу, если операнд меньше нуля
bgezal $r, imm - переход по константному адресу, если операнд больше или равен нулю, с сохранением адреса возврата в $31
bltzal $r, imm - переход по константному адресу, если операнд меньше нуля, с сохранением адреса возврата в $31