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 = 1000010100101110
funct4 [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)