MIPS中$zero寄存器的用途是什么?

MIPS中$zero寄存器的用途是什么?,mips,Mips,MIPS中$zero寄存器的用途是什么 这是什么意思 lw $t0, myInteger($zero) 零寄存器始终保持常量0。除了0恰好是一个非常有用的常数这一事实之外,它并没有什么特别之处。非常有用,以至于MIPS设计者专门用一个寄存器来保存它的值。(这样就不必浪费另一个寄存器或任何内存来保存该值。) 编辑: 至于那行代码的意思,它将单词从内存[myInteger+0]加载到$t0寄存器中。lw命令接受常量(myInteger)和寄存器($zero)。不知道为什么,但这就是说明的工作原理

MIPS中$zero寄存器的用途是什么

这是什么意思

lw $t0, myInteger($zero)

零寄存器始终保持常量0。除了0恰好是一个非常有用的常数这一事实之外,它并没有什么特别之处。非常有用,以至于MIPS设计者专门用一个寄存器来保存它的值。(这样就不必浪费另一个寄存器或任何内存来保存该值。)


编辑:


至于那行代码的意思,它将单词从
内存[myInteger+0]
加载到
$t0
寄存器中。
lw
命令接受常量(
myInteger
)和寄存器(
$zero
)。不知道为什么,但这就是说明的工作原理。由于使用了
myInteger
作为常量,因此必须提供一个寄存器,因此使用了
$zero

lw$t0,myInteger($zero)
lw
只是加载字指令。它将常量0加载到
$t0
寄存器中。我不知道什么是
myInteger()
,我从未见过。我不认为这是正常MIPS组装的一部分。我编辑了我的答案。在这里,他们使用
$zero
表示与内存地址的0偏移量。但这一点与零寄存器有关。查看源代码,您可能会看到
myInteger
在某个地方被定义为常量。他们为什么要这样做?我的意思是,为什么不使用一个简单的命令,比如
lw$t0,myInteger
?为什么
lw$t0,myInteger($零)
?在每本MIPS书的开头都提到了可能的重复,在这里的许多问题中,@phuclv,你是在关闭旧问题而选择新问题?没有人关心时间@phuclv,唐纳德·特朗普关心时间。