MOP.R.24 默认是 NOP 吗?
不是纯 NOP。它默认把 0 写入 rd。
Zimop MOP.R.24,默认把 0 写入 rd,可由未来扩展重定义为读取 rs1 并写 rd。
MOP-R-24 使用 opcode 1110011(0x73)、funct3 100。MOP.R.n 使用 SYSTEM 字段:bits 31..20 是固定的 n 选择子,rs1 和 rd 是显式寄存器字段,funct3=100,opcode=SYSTEM。默认定义只向 x[rd] 写 0;rs1 不是默认读取的源操作数。
MOP.R.24 是 Zimop may-be-operation,推荐语法为 mop.r.24 rd, rs1。若没有其他扩展重定义该编码,官方默认行为是把 0 写入 x[rd];该编码空间允许未来扩展定义为读取 x[rs1] 并写入 x[rd]。标准软件不应执行 MOP,除非明确面向重定义该 MOP 的扩展。
MOP.R.24 是 Zimop 定义的 may-be-operation;未被其他扩展重定义时,它的可见结果是 rd 得到 0。
结合 «mop.r.24 t0, t1» 等实际代码理解该场景。
结合 «mop.r.24 t0, t1» 等实际代码理解该场景。
不是纯 NOP。它默认把 0 写入 rd。
不应如此,除非软件明确面向重定义该 MOP 的扩展。