Summary of Instruction Encoding

The following is a list of all instructions described in this section so far. The dashes are usually register numbers encoded in 5-bit UB. However, some of them are immediate values or targets.

R-Type Instructions

Instruction B31-26 B25-21 B20-16 B15-11 B10-6 B5-0
  opcode register s register t register d shift amount function
add $rd, $rs, $rt 000 000 (SPECIAL) - - - 00000 100 000
sub $rd, $rs, $rt 000 000 (SPECIAL) - - - 00000 100 010
and $rd, $rs, $rt 000 000 (SPECIAL) - - - 00000 100 100
or $rd, $rs, $rt 000 000 (SPECIAL) - - - 00000 100 101
nor $rd, $rs, $rt 000 000 (SPECIAL) - - - 00000 100 111
or $rd, $rs, $rt 000 000 (SPECIAL) - - - 00000 100 110
sll $rd, $rt, <shift_amt> 000 000 (SPECIAL) unused - - shift_amt 000 000
sllv $rd, $rt, $rs 000 000 (SPECIAL) - - - 00000 000 100
srl $rd, $rt, <shift_amt> 000 000 (SPECIAL) unused - - shift_amt 000 010
srlv $rd, $rt, $rs 000 000 (SPECIAL) - - - 00000 000 110
sra $rd, $rt, <shift_amt> 000 000 (SPECIAL) unused - - shift_amt 000 011
srav $rd, $rt, $rs 000 000 (SPECIAL) - - - 00000 000 111
jr $rs 000 000 (SPECIAL) - 00000 00000 00000 001 000
jalr $rs 000 000 (SPECIAL) - 00000 11111 00000 100 010
mult $rs, $rt 000 000 (SPECIAL) - - 00000 00000 011 000
multu $rs, $rt 000 000 (SPECIAL) - - 00000 00000 011 001
div $rs, $rt 000 000 (SPECIAL) - - 00000 00000 011 010
divu $rs, $rt 000 000 (SPECIAL) - - 00000 00000 011 011
mfhi $rd 000 000 (SPECIAL) 00000 00000 - 00000 010 000
mflo $rd 000 000 (SPECIAL) 00000 00000 - 00000 010 010

I-Type Instructions

Instruction B31-26 B25-21 B20-16                 B15-0                
  opcode register s register t immediate
addi $rt, $rs, <immed> 001 000 - - -
andi $rt, $rs, <immed> 001 100 - - -
ori $rt, $rs, <immed> 001 101 - - -
xori $rt, $rs, <immed> 001 110 - - -
lb $rt, <offset>($rs) 100 000 - - offset
lbu $rt, <offset>($rs) 100 100 - - offset
sw $rt, <offset>($rs) 101 011 - - offset
sw $rt, <offset>($rs) 101 100 - - offset
beq $rt, $rs, <offset> 000 100 - - offset
bne $rt, $rs, <offset> 000 101 - - offset
bgtz $rs, <offset> 000 111 - 00000 offset
bgez $rs, <offset> 000 001 (REGIMM) - 00001 (BGEZ) offset
bltz $rs, <offset> 000 001 (REGIMM) - 00000 (BLTZ) offset
blez $rs, <offset> 000 110 - 00000 offset
lui $rt, <immed> 001 111 ignored - immed

J-Type Instructions

Instruction B31-26 B25-0
    opcode                        target                     
j <target> 000 010 -
jal <target> 000 011 -

Web Accessibility