下图来自riscv spec,附带PC寄存器(程序计数器,用来存储指向下一条指令的地址),寄存器的长度XLEN与架构有关(对于rv32:XLEN=32,对于rv64:XLEN=64)。 对于这些通用寄存器,除了x0外(x0 寄存器的值读恒为0,写无效),其它寄存器都本质上是等价的。但在实际使用过程中,我们约定了这些寄存器的用法,即ABI规范,见下表,我们将
目录 收起 寄存器 通用寄存器 PC寄存器 RISC-V 汇编 汇编指令 寄存器 通用寄存器 32个通用寄存器,x0 ~ x31代表。 x0 是 零值寄存器:读出来的值永远为 0 ,写入的值将会被丢弃。 1个返回地址寄存器:x1/ra 4 个指标寄存器: x2/sp x3/gp x4/tp x8/fp/s0:说明 fp 和 s0 是一个寄存器;如果用来作 ...
1.4 PC相对寻址 PC相对寻址表示地址为相对于PC的偏移,PC 相对寻址可用来支持位置无关代码,像RISC-V的分支跳转指令也都是相对寻址,如RISC-V的分支跳转指令: # if (rs1 < rs2) pc += sext(offset) blt rs1, rs2, offset 总结: 由上面分析可知,RISC-V支持4种寻址方式:立即数寻址、寄存器寻址、寄存器相对...
中央处理单元(CPU)的核心组件包括算术逻辑单元(ALU)、控制单元(CU)和寄存器。ALU 负责执行所有算术和逻辑运算;CU 管理和协调 CPU 内部以及外部的指令和数据流;而寄存器则提供一个快速存取的位置,用于暂时存储计算和指令执行过程中的数据,从而实现高效的数据处理速度。CPU 架构涵盖了 CPU 的设计和功能结构,它...
gp寄存器在启动代码中加载为__global_pointer$的地址,并且之后不能被改变。 linker时使用__global_pointer l爱学习 2023-09-11 16:57:36 【转载】第1章 初识RISC-V 位。如果支持浮点指令,则需额外支持32个浮点(Float Point)寄存器不同于ARM,RISC-V中PC指针不占用通过寄存器,而是独立的,程序执行中自动变化,...
用于保存M模式指向hart上下文的指针,并在进入M模式的处理程序时,和用户寄存器交换。mepc 发生中断时,...
RV32I通用寄存器如下:Caller:来访者,简单来说就是打电话的,即调用函数的函数,Callee:被访者,简单来说就是接电话的,即被调用函数 寄存器的宽度由ISA指定,如RV32的通用寄存器宽度为32位,RV64的通用寄存器宽度为64位。如果支持浮点指令,则需额外支持32个浮点(Float Point)寄存器不同于ARM,RISC-V中PC...
RISCV的寄存器类型: ABI:application binary interface二进制接口 32个通用寄存器,x0硬接到0,一直为0,读x0为0,写x0没有效果; 其他寄存器可读可写 PC寄存器:program counter,保存当前指令的地址 后面是操作码(表示进行什么运算,加减乘除等等),前面是地址码(表示运算数据在哪) ...
RISC-V是什么 RISC-V是一种开源的指令集架构,它定义了一组基本的操作码和寄存器,以及一些可选的扩展指令。RISC-V的设计目标是提供一种完全开放的、真实的、简洁、灵活、高效、可扩展的指令集架构,适用于各种不同的应用场景和处理器实现。RISC-V的诞生 RISC-V架构主要由美国加州大学伯克利分校(简称伯克利)的...