x3寄存器:别名gp,全局寄存器,用于链接器优化 x4寄存器:别名tp,线程寄存器,保存指向进程控制块的指针 x5-x7,x28-x31寄存器:别名t0-t6,临时寄存器 x8-x9,x18-x27寄存器:别名s0-s11,其中s0可用作栈帧指针(FP) x10-x17寄存器:别名a0-a7,在函数调用中传递参数和返回值 系统寄存器 用于系统控制和状态的寄存器,对处理器进
RISC-V的通用寄存器通常具有别名和特殊用途,在书写汇编指令时可以直接使用别名。 ●x0寄存器的别名为zero。寄存器的内容全是0,可以用作源寄存器,也可以用作目标寄存器。 ●x1寄存器的别名为ra——链接寄存器,用于保存函数返回地址。 ●x2寄存器的别名为sp——栈指针寄存器,指向栈的地址。 图1.5 RISC-V整型通用寄存器...
读恒为0,写无效,这个寄存器在一些地方很有作用,因为程序运行中常数0的使用频率非常高,所以专门用一个寄存器来存放常数0,并没有浪费寄存器数量,并且使得编译器工作更加简便,这一点也是RISC-V架构优雅性的体现,比如后面讲到的伪指令。
RISC-V 给 x3 这个通用寄存器起了一个 ABI 别名为 gp(Global pointer)。以前一直没太深入考虑过 gp 的含义和用法。最近研究了一下,差不多清楚了,记录下来备忘。 同样的,为方便以后文档的版本管理和编辑,文档…
R是CSR,它是A的另一个源寄存器别名; 目的寄存器定义:一般来说,如果满足下列任何条件之一,寄存器R(除x0)就是指令A的目的寄存器: 在指令A的操作码中,rd被设置为R; A是CSR指令,在A的操作码中,CSR被设置为R。如果A为CSRRS或CSRRC,需要rs1不是x0.如果A为CSRRSI或CSRRCI,需要umm[4:0]不是0; ...
CPU 中配有大量的寄存器,这些指令的选取都是工程中使用频率最高的指令。由于指令长度一致,功能单一,...
RV32I的寄存器 一共32个寄存器,x0到x31,其中x0总是0。 寄存器有别名,别名可以帮助记忆关于调用惯例方面的规范。 下面是寄存器及其别名的对应关系: x0 / Zero x1 / ra (return address) x2 / sp (stack pointer) x3 / gp (global pointer)
risc-v 有通用寄存器, 也有一些特殊的寄存器(csr) 下表方便查阅吧,一般都是用别名多一些 点评:因为是16字节对齐, 所有sp空间-16,不考虑这个情况, 用不了这么多 c 代码 #include <stdio.h> void my_function(int a, int b, int c, int d, int e, int f, int g, int h) { ...
RISC-V通用寄存器 RISC-V有x0~x31共32个通用寄存器,每个通用寄存器都有各自的用途,例如x2是作为sp栈指针、a0~a1用来保存函数参数或返回值。x0寄存器被硬编码为了0,就是个0值寄存器。 ABI名称相当于这些通用寄存器的别名,在RISC-V汇编当中,都使用ABI名称来代表这些寄存器。