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

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

指令手册C-type

16位编码的零扩展半字(低16位零扩展)

指令语法

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

扩展条件:RV32/RV64;Zcb 依赖 Zca,本指令另需 Zbb。

指令行为说明

C.ZEXT.H 使用 CU 格式,将唯一源/目的寄存器的低 16 位零扩展到 XLEN 位并写回;其三位字段只选择 x8-x15。Zcb 依赖 Zca,本指令另需 Zbb。

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

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

c.zext.h
执行环境

C.ZEXT.H 需要 Zcb 和 Zbb;Zcb 依赖 Zca。

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

快速理解与检索要点

C.ZEXT.H 把 rsd'[15:0] 零扩展后写回同一 x8-x15 寄存器;它要求 Zcb 和 Zbb。

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

常见使用场景

零扩展

RV32/RV64 Zcb+Zca+Zbb,x10=0x12348000:c.zext.h x10 得到 x10=0x8000,高位清零。

使用前检查清单

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

容易混淆 / 常见误区

需要Zbb支持
操作数仅限x8-x15
高XLEN-16位清零

常见问题

是否读取两个寄存器?

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

需要哪些扩展?

Zcb 依赖 Zca,本指令另需 Zbb。