C.MV
RISC-V C.MV 指令详解
指令手册CR format将 rs2 的值复制到 rd。CR 格式;rs2 必须不等于 x0。
指令语法
c.mv rd, rs2
操作数说明
本指令为 CR format 格式,请根据汇编语法确认各操作数位置。
C压缩指令
指令行为说明
C.MV 使用 CR 格式,将 rs2 复制到 rd,等价的基础指令语义为 add rd, x0, rs2。rs2 必须不等于 x0;rs2=x0 的编码对应 C.JR。rd=x0 且 rs2≠x0 的编码是 HINT。
C.MV 指令解析与执行动画
按实际 CR 或 CI 16 位编码解码,并分清普通指令、HINT 与共享编码。
当前步骤
步骤 1:识别 C.MV
动画直接展示 C 扩展的 16 位字段,而不是把它伪装成 32 位标量指令。
指令语法
执行环境
16 位编码
0x852E = 1000010100101110funct4 [15..12]
1000
rd/rs1 [11..7]
01010
rs2 [6..2]
01011
op [1..0]
10
操作数与计算
x11 = 0x00000009
复制完整 XLEN 位值;不进行算术运算。
rd ← rs2
解码结果与架构状态
C.MV
x10 = 0x00000009
动画只展示官方定义的解码、寄存器读取、算术和架构状态,不表示实现的流水线、缓存、预测或时序。
常见使用场景
寄存器操作
结合 «c.mv x10, x11 # x10 = x11» 等实际代码理解该场景。
使用前检查清单
语法检查
- 确认当前指令格式为 CR format。
- 确认操作数排列顺序与示例一致。
语义检查
- 确认目标寄存器用途和调用约定兼容。
- 确认该指令不是伪指令展开后的底层形式。
容易混淆 / 常见误区
rs2不能为x0(为C.JR)