x3寄存器:别名gp,全局寄存器,用于链接器优化 x4寄存器:别名tp,线程寄存器,保存指向进程控制块的指针 x5-x7,x28-x31寄存器:别名t0-t6,临时寄存器 x8-x9,x18-x27寄存器:别名s0-s11,其中s0可用作栈帧指针(FP) x10-x17寄存器:别名a0-a7,在函数调用中传递参数和返回值 系统寄存器 用于系统控制和状态的寄存器,对处理...
读恒为0,写无效,这个寄存器在一些地方很有作用,因为程序运行中常数0的使用频率非常高,所以专门用一个寄存器来存放常数0,并没有浪费寄存器数量,并且使得编译器工作更加简便,这一点也是RISC-V架构优雅性的体现,比如后面讲到的伪指令。
RV32I的寄存器 一共32个寄存器,x0到x31,其中x0总是0。寄存器有别名,别名可以帮助记忆关于调用惯例...
ABI名称相当于这些通用寄存器的别名,在RISC-V汇编当中,都使用ABI名称来代表这些寄存器。RISC-V CSR...
R是CSR,它是A的另一个目的寄存器别名; 比如有以下load和store指令: lwx1,0(x2) //x1充当目的寄存器角色 swx3,0(x4) //x3充当源寄存器角色 内存指令通常还进一步指定哪些源寄存器是地址源寄存器还是数据源寄存器。大多数非内存访问指令都带有从源寄存器到目的寄存器的依赖项。
RISC-V 给 x3 这个通用寄存器起了一个 ABI 别名为 gp(Global pointer)。以前一直没太深入考虑过 gp 的含义和用法。最近研究了一下,差不多清楚了,记录下来备忘。 同样的,为方便以后文档的版本管理和编辑,文档…
RISC-V 上的寄存器 a0 和 a1 只是 x10 和 x11 的别名。它们是放置函数调用的第一个和第二个参数的地方。RET 是一条伪指令 (简写): JALR x0, 0(ra) # sp ← 0 + ra # x0 ← sp + 4 ignoring result JALR 跳转到 ra 引用返回地址的地址。ra 是 x1 的别名。