NOP 是独立的真实指令编码吗?
nop 是汇编伪指令,标准编码复用 ADDI x0, x0, 0,没有另设操作码。
nop 是无显式操作数的汇编伪指令,标准 32 位编码为 ADDI x0, x0, 0(0x00000013)。
nop汇编写法为 nop,无显式寄存器或立即数操作数;标准展开为 addi x0, x0, 0。
本页保留 /instructions/nop 入口,说明 nop 的汇编身份及标准基础指令编码。nop 展开为 ADDI x0, x0, 0,使用 RV32I/RV64I 的 I-type 编码;它没有独立操作码。执行该 32 位标准编码时,除 PC 前进 4 字节和适用性能计数器递增外,不改变架构可见状态。
标准 32 位 I-type 字段:imm[11:0]=000000000000,rs1=00000,funct3=000,rd=00000,opcode=0010011。组合得到 0x00000013。
RV32I/RV64I:在 PC=0x1000 成功执行此标准编码后,PC=0x1004,通用寄存器和内存不变,适用性能计数器递增。
nop
# canonical base instruction: addi x0, x0, 0
# 32-bit encoding: 0x00000013在编码器中查看 ADDI 基础编码标准 NOP 编码是 ADDI x0, x0, 0;其他不改变架构状态的编码可用于 HINT,不能因此都称为标准 NOP 编码。
不能从 NOP 推出固定执行周期或固定流水线资源消耗;规范允许实现进行微架构优化。
x0 恒为 0;该标准编码不改变通用寄存器或内存,但 PC 和适用性能计数器仍会前进。
nop 是汇编伪指令,标准编码复用 ADDI x0, x0, 0,没有另设操作码。
除 PC 前进和适用性能计数器递增外,不改变架构可见状态;标准 32 位编码使 PC 前进 4 字节。
标准编码便于微架构优化和更易读的反汇编输出;其他 NOP 编码可用于 HINT。