arith (6 0 5 r[s] 5 r[t] 5 rd 5 a 6 ~) 0 "SLL" "r[d] = r[t] << a" 2 "SRL" "r[d] = r[t] >>> a" 3 "SRA" "rd = r[t] >> a" 4 "SLLV" "rd = r[t] << r[s]" 6 "SRLV" "rd = r[t] >>> r[s]" 16 "MFHI" "rd = hi" 17 "MTHI" "hi = r[s]" 18 "MFLO" "rd = lo" 19 "MTLO" "lo = r[s]" 24 "MULT" "hi = ((int64) r[s] * (int64) r[t]) << 32; lo = ((int64) r[s] * (int64) r[t])" 25 "MULTU" "hi = ((uint64) r[s] * (uint64) r[t]) << 32; lo = ((uint64) r[s] * (uint64) r[t])" 26 "DIV" "lo = r[s] / r[t]; hi = r[s] % r[t]" 27 "DIVU" "lo = (uint32) r[s] / (uint32) r[t]; hi = (uint32) r[s] % (uint32) r[t];" 32 "ADD" "if (r[s] + r[t] < 0) exception(integerOverflow); else rd = r[s] + r[t]" 33 "ADDU" "rd = r[s] + r[t]" 34 "SUB" "if (r[s] - r[t] > 0) exception(integerOverflow); else rd = r[s] - r[t]" 35 "SUBU" "rd = r[s] - r[t]" 36 "AND" "rd = r[s] & r[t]" 37 "OR" "rd = r[s] | r[t]" 38 "XOR" "rd = r[s] ^ r[t]" 39 "NOR" "rd = ~(r[s] | r[t])" 41 "SLTU" "rd = (int32) ((uint32) r[s] < (uint32) r[t])" 42 "SLT" "rd = (int32) (r[s] < r[t])" imm (6 ~ 5 r[s] 5 r[t] 16 i) 4 "BEQ" "if (r[s] == r[t]) pc += i << 2" 5 "BNE" "if (r[s] != r[t])" 6 "BLEZ" "if (r[s] <= 0) pc += i << 2" 7 "BGTZ" "if (r[s] > 0) pc += i << 2" 8 "ADDI" "if (r[s] + i < 0) exception(integerOverflow); else r[t] = r[s] + i" 9 "ADDIU" "r[t] = r[s] + i" 10 "SLTI" "r[t] = (int32) (r[s] < i)" 11 "SLTIU" "r[t] = (int32) ((uint32) r[s] < (uint32) i)"{sometimes mistr[a]nscribed as 9 (binary 001001), the same as ADDIU} 12 "ANDI" "r[t] = r[s] & i" 13 "ORI" "r[t] = r[s] | i" 14 "XORI" "r[t] = r[s] ^ i"{no NORI} 24 "LLO" "r[t] = r[t] & 0xFFFF0000 | i" 25 "LHI" "r[t] = r[t] & 0xFFFF | (i << 16)" 32 "LB" "r[t] = mem8[r[s] + i]" "sign-extended" 33 "LH" "r[t] = mem16[r[s] + i]" "sign-extended" 35 "LW" "r[t] = mem32[r[s] + i]" "sign-extended" 36 "LBU" "r[t] = mem8[r[s] + i]" "zero-extended" 37 "LHU" "r[t] = mem16[r[s] + i]" "zero-extended" 40 "SB" "mem8[r[s] + i] = r[t]" 41 "SH" "mem16[r[s] + i] = r[t]" 43 "SW" "mem32[r[s] + i] = r[t]" jump (6 ~ 26 i) 2 "J" "pc += i << 2" 3 "JAL" "r[31] = pc; pc += i << 2" jumpr (6 ~ 5 s 21 0) 8 "JR" "pc = r[s]" 9 "JALR" "r[31] = pc; pc = r[s]" trap (6 0 20 code 6 ~) 13 "BREAK" "exception(breakpoint)"