RISC-V 汇编指令笔记
本文主要作为RISC-V Instruction的一个梳理。
RISC-V Instruction 的格式通常为
Operation code + Destination register + First operand register + Second oprand register
如,add x1, x2, x0 对应的 opcode = add; rd = x1; rs1 = x2; rs2 = x0.
对于RISC-V,有32个寄存器,分别是:
RISC-V寄存器表
寄存器 | 调用名字 | 用途 | 存储者 |
x0 | zero | 常数0 | N.A. |
x1 | ra | 返回地址 | Caller |
x2 | sp | 栈指针 | Callee |
x3 | gp | 全局指针 | / |
x4 | tp | 线程指针 | / |
x5-x7 | t0-t2 | 临时存储 | Caller |
x8 | s0/fp | 保存用寄存器/帧指针(配合栈指针界定一个函数的栈) | Callee |
x9 | s1 | 保存用寄存器 | Callee |
x10-x11 | a0-a1 | 函数参数/返回值 | Caller |
x12-x17 | a2-a7 | 函数参数 | Caller |
x18-x27 | s2-s11 | 保存用寄存器 | Callee |
x28-x31 | t3-t6 | 临时存储 | Caller |
f0-f7 | ft0-ft7 | 浮点临时存储 | Caller |
f8-f9 | fs0-fs1 | 浮点保存用寄存器 | Callee |
f10-f11 | fa0-fa1 | 浮点函数参数/返回值 |