riscv指令

各个寄存器

寄存器 ABI名字 注释 Saver
x0 zero Hard-wired zero,常数0
x1 ra Return address caller,调用函数的指令pc
x2 sp Stack pointer callee,被调用的函数指令pc
x3 gp Global pointer
x4 tp Thread pointer
x5 t0 Temporary/alternate link register caller
x6 t1 Temporaries caller
x7 t2 Temporaries caller
x8 s0/fp Saved register/frame pointer caller
x9 s1 Saved register caller
x10 a0 Function arguments/return values caller
x11 a1 Function arguments/return values caller
x12 a2 Function arguments caller
x13 a3 Function arguments caller
x14 a4 Function arguments caller
x15 a5 Function arguments caller
x16 a6 Function arguments caller
x17 a7 Function arguments caller
x18 s2 Saved registers caller
x19 s3 Saved registers caller
x20 s4 Saved registers caller
x21 s5 Saved registers caller
x22 s6 Saved registers caller
x23 s7 Saved registers caller
x24 s8 Saved registers caller
x25 s9 Saved registers caller
x26 s10 Saved registers caller
x27 s11 Saved registers caller
x28 t3 Temporaries caller
x29 t4 Temporaries caller
x30 t5 Temporaries caller
x31 t6 Temporaries caller

指令类型

常见指令

li

r[rd]=immediate,U型指令
例:00000413 解析为li s0,0,s0(r[8])

auipc

r[rd]=immediate<<12+pc,U型指令
例:00009117 解析为auipc sp,0x9,sp(r[2])

addi

r[rd]=immediate+r[rs1],I型指令,immediate带符号位扩展
例:ffc10113 解析为addi sp,sp,-4 sp(r[2])

jal

r[rd] = pc+4; pc += sext(offset),J型指令,sext表符号位扩展
例:00c000ef 解析为jal ra,pc加完后的值
参考手册中英文

posted @ 2023-03-15 15:53  心比天高xzh  阅读(142)  评论(0)    收藏  举报