zext.w
RISC-V zext.w 伪指令详解
汇编器伪指令RISC-V zext.w 伪指令按RISC-V Assembly Programmer's Manual展开为 slli rd, rs, XLEN - 32 后接 srli rd, rd, XLEN - 32,以零扩展字。在 RV64 且 Zba 可用时,表中有单指令形式。
你写下的是
zext.w rd, rs
常见真实展开
slli rd, rs, XLEN - 32
srli rd, rd, XLEN - 32
这条伪指令到底在帮你省什么
RISC-V Assembly Programmer's Manual为该两条移位序列提供 zext.w 的零扩展字拼写。
RISC-V zext.w 伪指令使用 SLLI/SRLI 序列零扩展低 32 位;在 RV64 且 Zba 可用时,ADD.UW 提供单指令形式。
官方语义核对重点
RISC-V Assembly Programmer's Manual 列出 zext.w rd, rs 的 SLLI/SRLI 展开,并注明 Zba 可用时为单指令。
非特权 ISA 第 2.4.1 节规定 SLLI 逻辑左移时低位补零,SRLI 逻辑右移时高位补零。
非特权 ISA 的 Zba 表将 ADD.UW 列为 RV64,且第 30.9.1 节将 zext.w rd, rs1 列为 add.uw rd, rs1, zero。
可用性与扩展条件
基础条件
- SLLI/SRLI 两条移位
单指令/标准写法条件
- RV64 且 Zba 可用时,ADD.UW 提供单指令形式。
回退/边界
使用表中列出的 SLLI/SRLI 序列。备注
- 零扩展低 32 位。
展开过程怎么理解
步骤 1
SLLI 逻辑左移,低位补零。
步骤 2
SRLI 逻辑右移,高位补零。
官方依据与阅读顺序
本页把伪指令当作汇编器层面的别名或宏来解释:先看它会展开成哪些真实指令,再回到官方 ISA 手册理解真实指令的行为。涉及 ABI、重定位或链接器松弛时,以 psABI 文档为准。
什么时候优先想到它
使用 zext.w 表示表中列出的低 32 位零扩展操作。
容易混淆 / 常见误区
基础展开由两条移位组成;单指令形式需要 RV64 和 Zba。
表中的移位量为 XLEN - 32;在 RV64 中为 32。
常见问题
zext.w 的基础展开是什么?
RISC-V Assembly Programmer's Manual列出 slli rd, rs, XLEN - 32 后接 srli rd, rd, XLEN - 32。