RISC-V寄存器表:
RISC-V和常用的x86汇编语言存在许多的不同之处,下面将列出其中部分指令作用:
指令 | 语法 | 描述 |
---|---|---|
addi | addi rd,rs1,imm | 将寄存器rs1的值与立即数imm相加并存入寄存器rd |
ld | ld t0, 0(t1) | 将t1的值加上0,将这个值作为地址,取出这个地址所对应的内存中的值,将这个值赋值给t0 |
sd | sd t0, 0(t1) | 将t1的值加上0,将这个值作为地址,将t0的值存储到上述地址所对应的内存中去 |
li | li rd, imm | rd = imm(32bit)直接加载32位立即数 |
auipc | auipc rd, imm | rd = (imm << 12) + pc(相对pc的偏移量) |
jalr | jalr rd,offset(rs) | 可用于函数返回,把下一条指令的地址存到rd中,然后跳转到rs+offset地址处的指令继续执行。若rd=x0就是单纯的跳转(x0不能被修改) |
la | la rd,symbol(non-PIC) | 伪指令,等价于auipc rd, delta[31:12] + delta[11] 和 addi rd,rd,delta[11:0],其中delta=symbol-pc |
csrr a0, base | csrr a0, base | 将base的值读到a0中 |