我正在用这个exercise website学习MIPS汇编语言。
在练习2.3中,我想知道下面的说明有什么不同
add $t1, $t1, $t0 # $t1 = &A[i-j]
lw $t1, 0($t1) # $t1 = A[i-j]具体地说,&Ai-j和Ai-j有什么区别?我知道A是一个数组,但是为什么有一个"&“符号,而另一个不是?谢谢
发布于 2021-06-27 05:36:29
他们试图用C表示法来解释指令。
An是数组A的第n个元素中的值
&An是数组A的第n个元素的地址
引用的代码的要点不是要指出两条指令之间的“区别”;它是为了说明如何获取数组元素的内容。
第一条指令通过将$t0的内容添加到$t1来计算元素的地址(并理解它是如何生成的&Ai-j需要事先知道$t0和$t1中的内容)。
第二条指令使用第一条指令计算出的地址实际加载该字。
https://stackoverflow.com/questions/68145894
复制相似问题