Repositório com intuito de reunir lista com as instruções mais básicas para risc-v para inteiros 32 bits e alguns exemplos úteis.
Função | Tipo | Comando |
---|---|---|
Load | Byte | LB rd, rs1, imm |
Load | Halfword | LH rd, rs1, imm |
Load | Word | LW rd, rs1, imm |
Load | Byte Unsigned | LBU rd, rs1, imm |
Load | Half Unsigned | LHU rd, rs1, imm |
Stores | Byte | SB rs1, rs2, imm |
Stores | Halfword | SH rs1, rs2, imm |
Stores | Word | SW rs1, rs2, imm |
Shift | Left | SLL rd,rs1,rs2 |
Shift | Left Immediate | SLLI rd,rs1,shamt |
Shift | Right | SRL rd,rs1,rs2 |
Shift | Right Immediate | SRLI rd,rs1,shamt |
Shift | Right Arithmetic | SRA rd,rs1,rs2 |
Shift | Right Arith Imm | SRAI rd,rs1,shamt |
Arithmetic | ADD | ADD rd,rs1,rs2 |
Arithmetic | ADD Immediate | ADDI rd,rs1,im |
Arithmetic | SUBtract | SUB rd,rs1,rs2 |
Arithmetic | Load Upper Imm | LUI rd,imm |
Arithmetic | Add Upper Imm to PC | LUI rd,imm |
Logical | XOR | XOR rd,rs1,rs2 |
Logical | XOR Immediate | XORI rd,rs1,imm |
Logical | OR | OR rd,rs1,rs2 |
Logical | OR Immediate | ORI rd,rs1,imm |
Logical | AND | AND rd,rs1,rs2 |
Logical | AND Immediate | ANDI rd,rs1,imm |
Compare | Set < | SLT rd,rs1,rs2 |
Compare | Set < Immediate | SLTI rd,rs1,imm |
Compare | Set < Unsigned | SLTU rd,rs1,rs2 |
Compare | Set < Imm Unsigned | SLTIU rd,rs1,imm |
Branches | = | BEQ rs1,rs2,imm |
Branches | ≠ | BNE rs1,rs2,imm |
Branches | < | BLT rs1,rs2,imm |
Branches | ≥ | BGE rs1,rs2,imm |
Branches | < Unsigned | BLTU rs1,rs2,imm |
Branches | ≥ Unsigned | BGU rs1,rs2,imm |
Jump & Link | J&L | JAL rd,imm |
Jump & Link | J&L Register | JALR rd,rs1,imm |
- basic arithmetic
- add_sub.s - Mostrando como somar ou subtrair números
- data transfer
- control flow
- examples
Pull requests são sempre bem vindos, posso ter esquecido de alguma coisa, ou me passado em algo. Se for uma mudança grande, abre uma Issue antes pra gente discutir as mudanças. Se quiser adicionar um exemplo, sinta-se a vontade! Obrigado! 😍