C.SH 存储源寄存器的哪些位?
它将 rs2' 的最低 16 位写到内存;rs2' 的高位不参与存储值。
C.SH 使用 Zcb 的 CSH 格式,将 rs2' 的低 16 位存到 rs1' 加零扩展 uimm 的地址。rs1' 和 rs2' 都表示 x8-x15;uimm[1] 来自编码 bit 5,uimm[0] 固定为 0,因此偏移只能为 0 或 2。
只展示官方定义的 16 位字段、操作数、条件和架构状态;不模拟流水线、缓存或时序。
自然对齐访问不得产生地址未对齐异常;任何地址仍可能因 EEI 定义的访问权限而产生访问错误。
C.SH 将紧凑 rs1'/rs2' 映射到 x8-x15,重组 0 或 2 的 uimm,并只提交 rs2' 的低 16 位到有效地址。
结合 «c.sh x9, 2(x10) # store halfword» 等实际代码理解该场景。
它将 rs2' 的最低 16 位写到内存;rs2' 的高位不参与存储值。
uimm[1] 来自编码 bit 5 且 uimm[0] 固定为零,因此零扩展偏移只能是 0 或 2 字节。