lga
RISC-V lga 伪指令详解
汇编器伪指令RISC-V lga rd, symbol 是加载全局符号地址的汇编器伪指令。它使用 AUIPC 加 GOT 加载;文档示例在 RV64 使用 ld,在 RV32 使用 lw。
你写下的是
lga rd, symbol
常见真实展开
auipc rd, symbol@GOT[31:12]
l{w|d} rd, symbol@GOT[11:0](rd)
这条伪指令到底在帮你省什么
RISC-V Assembly Programmer's Manual将 lga 定义为加载全局地址的伪指令,并给出 GOT 间接加载序列。
展开过程怎么理解
步骤 1
AUIPC 形成 GOT 相关的高位 PC 相对部分。
步骤 2
随后 l{w|d} 通过该寄存器加载地址;RV32 使用 lw,RV64 使用 ld。
汇编写法与真实指令
按页面所列的 AUIPC 与 GOT 加载序列阅读该写法。
官方依据与阅读顺序
本页把伪指令当作汇编器层面的别名或宏来解释:先看它会展开成哪些真实指令,再回到官方 ISA 手册理解真实指令的行为。涉及 ABI、重定位或链接器松弛时,以 psABI 文档为准。
什么时候优先想到它
阅读或编写 lga rd, symbol 的全局地址写法。
容易混淆 / 常见误区
文档示例在 RV64 使用 ld,在 RV32 使用 lw。
GOT 与重定位是 psABI 的链接约定,不是 AUIPC 的硬件行为。
常见问题
lga 的 RV32 与 RV64 加载有何区别?
RISC-V Assembly Programmer's Manual示例在 RV64 使用 ld,在 RV32 使用 lw。