zext-b

RISC-V zext-b 伪指令详解

汇编器伪指令

零扩展字节伪指令,按官方汇编手册可用 andi rd, rs, 255 表达。它保留低 8 位并把高位清零。

你写下的是
zext.b rd, rs
常见真实展开
andi rd, rs, 255

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

字节数据常需要转成无符号整数;zext.b 比 andi 255 更直接说明“保留低 8 位并清零高位”的意图。

zext-b 的核心作用是“低 8 位零扩展”。它是汇编器层面的简写;调试、审计或阅读机器码时,应回到页面列出的真实展开指令和相关重定位语义来判断行为。

官方语义核对重点

官方汇编手册把 zext-b 作为汇编器层面的伪指令/别名处理,硬件执行的是展开后的真实指令序列。
真实语义以 ANDI 等展开指令的 ISA 定义为准;本页不把 zext-b 当作独立硬件 opcode。

展开过程怎么理解

步骤 1
ANDI 使用掩码 255 保留低 8 位并清零高位。

在 objdump / 反汇编里可能看到什么

反汇编可能显示伪指令,也可能显示展开后的真实指令,取决于工具选项和上下文。

官方依据与阅读顺序

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

什么时候优先想到它

把低 8 位解释为无符号字节
处理字符、字节缓冲区或掩码低字节
在位运算前清除高位垃圾

容易混淆 / 常见误区

这是零扩展,不保留符号;有符号字节应使用符号扩展路径
结果范围是 0..255
作为伪指令时最终编码通常是 ANDI

常见问题

zext-b 是真实 RISC-V 指令吗?

zext-b 是汇编器伪指令或别名,不是单独硬件 opcode。页面中的“常见真实展开”列出官方展开,真实行为由展开后的 ISA 指令决定。

使用 zext-b 时最容易误解什么?

这是零扩展,不保留符号;有符号字节应使用符号扩展路径