RISC-V 架构提供32个通用寄存器x0-x31,其中x0 有些特殊,x0 寄存器被设置为硬件连线的常数0,读恒为0,写无效,这个寄存器在一些地方很有作用,因为程序运行中常数0的使用频率非常高,所以专门用一个寄存器来存放常数0,并没有浪费寄存器数量,并且使得编译器工作更加简便,这一点也是RISC-V架构优雅性的体现,比如后面讲...
存储指令将寄存器中的值存储到内存中,语法格式:MNM rs1, imm(rs2)MNM代表指令指令助记符,rs1代表源寄存器,imm(rs2)代表内存地址为:rs2加一个立即数(偏移)。 sw指令将一个32位的寄存器值存储到指定内存地址,与加载指令是一个逆向过程,同样遵循的是小端地址模式,如下图6.9表示sw a0, 0(a2)这条汇编指令的工...
RV32M:乘法和除法指令 RV32F 和 RV32D:单/双精度指令 RV32I中寄存器x0是常量,而f0则与其他寄存器一样,是可变寄存器。 RV32A:原子指令 内存原子操作 对内存中的操作数执行一个原子操作,并将目标寄存器设置为操作前的内存 值。原子表示内存读写之间的过程不会被打断,内存值也不会被其它处理器修改。- 类似于...
vtype 寄存器是一个xlen长度的向量类型csr寄存器。vtype寄存器提供了解释向量寄存器文件的默认类型,且其值只能通过vset{i}vl{i}指令来修改。向量类型还决定每个向量寄存器中元素的组织,以及多个向量寄存器如何分组。 Vector selected element width vsew[2:0] 一个向量寄存器默认情况下支持VLEN/ ELEN个元素。VSEM取值...
RISC-V有x0~x31共32个通用寄存器,每个通用寄存器都有各自的用途,例如x2是作为sp栈指针、a0 ~ a1...
1、寄存器 RV32I有32个通用寄存器,以及一个PC寄存器。其中有一个通过硬件设置的值恒为 0 的 x0 寄存器 注:RISC-V的32个寄存器x0~x31是用0~31这些数字来表示。 2、基础指令 RISC-V有六种基本指令格式: 每个字段名称的含义: opcode(操作码):指令的基本操作,这个缩写是它惯用名称。
为了简单和一致,软件开发工具通常使用 ABI 名称。根据 ABI,额外的寄存器专用于 X0 到 X15 范围内的保存寄存器、函数参数和临时变量,主要用于 RV32E 基础 ISA,它只需要前 16 个寄存器来实现简单的嵌入式微控制器。但是 RV32I 基础 ISA 将拥有所有 32 个寄存器 X0 到 X31。
[###]用于标识处理器位宽,取值[32, 64,128],也就是处理器的寄存器位宽 [abc...xyz]标识该处理...
1. 寄存器 32个x寄存器,RV32下x reg是32位宽 x0:硬连线 常数0 专门的零寄存器 x1-x31:31个通用reg 返回地址:没有强制要求那一个x作为lr,但是一般用x1 pc:额外的用户可见寄存器 2. 基本指令格式 四种基础指令格式 R/I/S/U imm:立即数 rs1:源寄存器1 ...