0

我有以下几行

la x14, L2
sw x13, 0(x14)

L2 的地址在哪里0x2018

当我生成 ELF 文件并使用 检查它时objdump,这就是我所看到的(仅相关部分):

...
1018: auipc   a4,0x1
101c: mv      a4,a4
1020: sw      a3,0(a4) # 2018 <L2>
...

1018 处的行,即mv a4 a4转换addi a4, a4, 0为多余的行。为什么会产生这个?如果没有这条线,它是否仍然有效?

gcc 是否需要始终为指令生成 2la条指令?

4

1 回答 1

0

la是 RISC-V 的伪命令。

例如,参见RISC-V assemly language programming一书,第 4.10.2 章“The la Pseudoinstruction”中对其进行了描述。

于 2021-11-11T23:09:09.773 回答