首页/指令库/C-ZEXT-B
C.ZEXT.B

RISC-V C.ZEXT.B 指令详解

指令手册C-type

16位编码的零扩展字节(最低8位零扩展)

指令语法

c.zext.b rd'/rs1'
操作数说明
RV32/RV64 Zcb,依赖 Zca,无额外扩展前提;16位 CU 格式。
唯一 rd'/rs1' 三位字段选择 x8-x15,同一寄存器读取并写回;没有立即数。
保留低 8 位,清零所有更高位,结果写回同一寄存器。
Zcb压缩指令

扩展条件:RV32/RV64;Zcb 依赖 Zca,本指令无额外扩展前提。

指令行为说明

C.ZEXT.B 使用 CU 格式,将唯一源/目的寄存器的低 8 位零扩展到 XLEN 位并写回;其三位字段只选择 x8-x15。Zcb 依赖 Zca;本指令无额外扩展前提,等价于 andi rd', rd', 0xff。

C.ZEXT.B 指令解析与执行动画

只显示官方定义的 16 位字段、条件与架构可见状态;不模拟流水线、缓存或时序。

c.zext.b
执行环境

C.ZEXT.B 属于 Zcb;Zcb 依赖 Zca。

x10 <- 0x00000080
16 位编码字段
15..10
funct6
100111
9..7
rd'/rs1'
010
6..5
funct2
11
4..2
C.ZEXT.B
000
1..0
op
01
执行数据路径
CU 格式把单一 rd'/rs1' 字段还原为 x10;它既是源操作数也是目的操作数。
EXTZ(0x12345680[7:0]) = 0x00000080
x10 <- 0x00000080
尚未提交架构状态。

快速理解与检索要点

C.ZEXT.B 把 rsd'[7:0] 零扩展到 XLEN 位后写回同一 x8-x15 寄存器;它属于依赖 Zca 的 Zcb。

CU 编码的 rd'/rs1' 在 inst[9:7],映射到 x8-x15;没有立即数。
保留低 8 位,清零所有更高位;支持 RV32/RV64。

常见使用场景

零扩展

RV32/RV64 Zcb+Zca,x10=0x12345680:c.zext.b x10 得到 x10=0x80,高位清零。

使用前检查清单

语法检查
  • RV32/RV64 Zcb,依赖 Zca,无额外扩展前提;16位 CU 格式。
  • 唯一 rd'/rs1' 三位字段选择 x8-x15,同一寄存器读取并写回;没有立即数。
语义检查
  • 保留低 8 位,清零所有更高位,结果写回同一寄存器。

容易混淆 / 常见误区

操作数仅限x8-x15
等价于andi rd', rd', 0xFF

常见问题

是否读取两个寄存器?

不是。rd'/rs1' 表示一个同时读取与写回的 x8-x15 寄存器。

需要哪些扩展?

Zcb 依赖 Zca;本指令无额外扩展前提。