我今天有家庭作业,我需要回答以下问题: 1.RV32I集的精简指令的宽度(以位为单位)是多少? 2.需要多少个连续指令才能将32位值加载到注册表中? 谢谢。
答案 0 :(得分:0)
我建议阅读RISC-V ISA specification。
RV32I集的紧凑指令的宽度是多少?
对于RV32I,没有紧凑指令的概念。 RV32I是指32位基本整数指令集(因此RV32I中的I)。
您可能要问的是RV32I的“ C”扩展,名为RV32C。从§12.1开始:
RVC使用一种简单的压缩方案,可以提供较短的 16位版本的普通32位RISC-V指令
将32位值加载到注册表中需要多少个连续指令?
从第2.4节立即注册整数指令:
ADDI 将符号扩展的12位立即数添加到寄存器中 rs1
和
LUI 将U中间值放在目标寄存器的高20位中 rd ,填充最低 带有零的12位。
因此,将32位立即数加载到寄存器中的常见用法是lui
(加载高位立即数),后跟addi
。
lui a0, %hi(msg) # load msg(hi)
addi a0, a0, %lo(msg) # load msg(lo)
第一条指令将msg
的高20位装入寄存器a0
的高20位。然后,使用msg
填充addi
的低12位。