RISC-V ADDI指令

Bet*_*tty 7 riscv

我目前正在致力于实现 RV32I 基本指令集。

我有一个关于 ADDI 指令的问题。手册中,如何理解这一条“ADDI rd,rs1,0用于实现MV rd,rs1汇编器伪指令”。

是否意味着ADDI rd, rs1, 0等于将rs1的内容移动到rd指定的寄存器?

Li *_*uan 4

yesADDI rd, rs1, 0执行操作:

rd <- rs1 + 0, 那是rd <- rs1

所以 ADDI rd, rs1, 0执行MV rd, rs1

它不会将 rs1 的内容移动(复制是一个更好的词)到问题中提到的 rd 指定的寄存器。它将 rs1 的内容移动(再次复制)到寄存器 rd。

举个例子:

ADDI x3, x5, 0x5将复制to -的内容x3并使用与上面相同的名称,在本例中为:rdisx3rs1is x5