RISC-V:12 位立即数逻辑运算是否对整个寄存器进行运算?
RISC-V: Do 12-bit immediate logical operations operate on the whole register?
我正在尝试为 RISC-V 编写模拟器 CPU,但找不到我的问题的明确答案。
假设我想使用
ANDI rs1, rd, 0xFFF
rs1 包含 0xFFFFFFFF,立即数为 0xFFF。
ANDI 是否对完整寄存器进行运算,并仅用零填充立即数的剩余 20 位,以便 rd 中的结果为 0x000000FFF?
或者高 20 位被忽略并且 rd 中的结果仍然是 0xFFFFFFFF?
XORI 和 ORI 命令的相同问题。
立即数是符号扩展,
对于 RV32
,12 位 FFF 将转换为 32'hFFFFF_FFF
所以进行 AND 运算的值将是
rs1_data & 0xFFFFF_FFF
我正在尝试为 RISC-V 编写模拟器 CPU,但找不到我的问题的明确答案。
假设我想使用
ANDI rs1, rd, 0xFFF
rs1 包含 0xFFFFFFFF,立即数为 0xFFF。
ANDI 是否对完整寄存器进行运算,并仅用零填充立即数的剩余 20 位,以便 rd 中的结果为 0x000000FFF?
或者高 20 位被忽略并且 rd 中的结果仍然是 0xFFFFFFFF?
XORI 和 ORI 命令的相同问题。
立即数是符号扩展, 对于 RV32
,12 位 FFF 将转换为 32'hFFFFF_FFF所以进行 AND 运算的值将是
rs1_data & 0xFFFFF_FFF