Bet*_*tty 5 assembly nop riscv
我最近正在处理RISC-V 32I指令。我有一个关于NOP
指令的问题,规范说它等于ADDI x0, x0, 0
。
但是,x0
不是可以由程序员修改的通用寄存器。因此,为什么x0
在这里用作NOP
指令的目的地寄存器?
任何人都可以在这点上阐明一些观点吗?
NOP
是一个扩展为 的伪指令ADDI x0, x0, 0
。的x0
(或zero
)是一种只读寄存器专用于零值,即,其被硬连线到零每单个位。写入该寄存器的任何内容都将被简单地丢弃,因为其值无法修改。
该
NOP
指令不改变任何体系结构可见的状态,除了推进pc
和增加任何适用的性能计数器。NOP
被编码为ADDI x0, x0, 0
.
请记住,RISC-V 没有算术标志(即进位、溢出、零、符号标志),任何目标寄存器为的算术运算都x0
将作为无运算指令执行,而不管源寄存器如何,因为最终结果将包括在不改变任何其他相关处理器状态的情况下将程序计数器推进到下一条指令。
归档时间: |
|
查看次数: |
1497 次 |
最近记录: |