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加完后的值
参考手册中英文

浙公网安备 33010602011771号