`addi a0, zero, 2` 在伪代码中是什么意思?

What does `addi a0, zero, 2` mean in pseudocode?

伪代码中的addi a0, zero, 2是什么意思? 是a0=a0+2??

我不确定,因为我们在这条指令中没有明确的寄存器来告诉我们结果在哪里。

这条RISC-V流水线没有那么多伪代码:

addi a0, zero, 2
  • addi :意思是 add immediate。第一个参数是结果的寄存器编号,第二个是参数,最后一个是立即数(这里是 2)。

但是a0zero是RISC-V寄存器的ABI名称(see this pdf page 3)。

  • a0:对应寄存器x10。添加结果将存储在这里。
  • zero:对应寄存器x0。这是一个特殊的寄存器«hardwired»到0(总是0值)

然后给定的流水线会这样做:

x10 = 0 + 2