【发布时间】:2018-11-22 05:55:19
【问题描述】:
我最近正在研究 RISC-V 32I 指令。我有一个关于NOP 指令的问题,规范说它等于ADDI x0, x0, 0。
但是,x0 不是一个可以被程序员修改的通用寄存器。那么,为什么x0 在这里充当NOP 指令的目标寄存器?
谁能解释一下这一点?
【问题讨论】:
-
x0 是一个只读寄存器,这意味着对它的每次写入都会被忽略。
-
就像 MIPS 或许多其他 RISC 架构一样,对零寄存器的写入被丢弃:How does a zero register improve performance?、Is Zero Register 'zr' in aarch64 essentially ground?、Why the %r0 of SPARC or MIPS, is always 0?