1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| add dst, src1, src2 addi dst, src1, imm sub dst, src1, src2
lw reg, off(addr) lh reg, off(addr) lhu reg, off(addr) lb reg, off(addr) lbu reg, off(addr) sw reg, off(addr) sh reg, off(addr) sb reg, off(addr)
beq reg1, reg2, label ; reg1 == reg2 bne reg1, reg2, label ; reg1 != reg2 blt reg1, reg2, label ; reg1 < reg2 bgt reg1, reg2, label ; reg1 > reg2 ble reg1, reg2, label ; reg1 <= reg2 bge reg1, reg2, label ; reg1 >= reg2
sll dst, src1, src2 ; shift left logical slli dst, src, imm srl dst, src1, src2 ; shift right logical srli dst, src, imm sra dst, src1, src2 ; shift right arithmetic sra dst, src, imm
mul dst, scr1, src2 mulh dst, src1, src2 div dst, src1, scr2 rem dst, src1, src2
and dst, src1, src2 andi dst, src, imm or dst, src1, src2 ori dst, src, imm xor dst, src1, src2 xori dst, src, imm
slt dst, reg1, reg2 ; dst = reg1 < reg2 ? 1 : 0 slti dst, reg, imm ; dst = reg < imm ? 1 : 0
ecall
|