我一直在研究一本项目书,作为对MIPS的介绍,但遇到了一个问题。本书中的代码行之一是lb $t3, ($t2)
。我不知道括号是做什么的,因为在此之前,我还没有看到它们的用处,而书中只是没有提到它们。为什么代码不只是lb $t3, $t2
?
这将是间接寻址,在我曾经编程的所有处理器上都可用。
“ lb $ t3,$ t2”(如果有效)将导致$ t3等于$ t2。
“” lb不用于将一个寄存器设置为另一个寄存器的值,而是将一个寄存器设置为保存在内存中的值。
当($ t2)括号语法出现时,是指我们所设置的值不是直接在寄存器本身中的值。直接在寄存器本身中的值只是保存实际值的内存地址。
假设$ t2 = 57。
lb $ t3,($ t2)不会将$ t3设置为57,而是查找内存地址57,并将$ t3(低字节)设置为该内存地址的值。
[($ t2)表示寄存器$ t2间接引用了我们真正想要的值,而$ t2(不带括号)表示$ t2直接引用了我们想要的值。