la

RISC-V la 伪指令详解

汇编器伪指令

RISC-V la 伪指令在 RISC-V Assembly Programmer's Manual 中按 .option nopic 或 .option pic 选择不同展开:前者为 AUIPC 加 ADDI,后者为 AUIPC 加经 GOT 的 l{w|d}。

你写下的是
la rd, symbol
常见真实展开
.option nopic auipc rd, symbol[31:12] addi rd, rd, symbol[11:0] .option pic auipc rd, symbol@GOT[31:12] l{w|d} rd, symbol@GOT[11:0](rd)

这条伪指令到底在帮你省什么

la 会根据 .option nopic 或 .option pic 选择不同的地址加载序列。

展开过程怎么理解

步骤 1
.option nopic 使用 AUIPC 后接 ADDI。
步骤 2
.option pic 使用 AUIPC 后接经 symbol@GOT 的 l{w|d}。

官方依据与阅读顺序

本页把伪指令当作汇编器层面的别名或宏来解释:先看它会展开成哪些真实指令,再回到官方 ISA 手册理解真实指令的行为。涉及 ABI、重定位或链接器松弛时,以 psABI 文档为准。

容易混淆 / 常见误区

.option nopic 与 .option pic 对应不同的 LA 展开,不应把其中一种当作无条件通用展开。

常见问题

la 只有一种展开吗?

没有。RISC-V Assembly Programmer's Manual 分别列出 .option nopic 和 .option pic 的 LA 序列。