关于加载字(lw)与加载地址(la)和mips汇编中的偏移的混淆?

时间:2018-03-29 07:40:11

标签: assembly mips

所以我对装配很新,我遇到了很多问题。例如,如果在数据段中我键入此

setValue()

在文字段

this.form-name.setValue({
    dropdown : some-value
})

$ t0现在存储值4还是n的地址? 因为我知道如果n是一个数组,如果我输入lw $ t0 4(n)$ t0存储n的第一个VALUE(内容)。如果我键入lw $ t0 n,则$ t0存储地址。

另外,我想知道是否要将偏移量设置为4来注册$ 0,如下所示:

.data

n:.word 4

$ t0只能保持0?

1 个答案:

答案 0 :(得分:4)

lw从记忆中加载一个字。
lw $t0, n从符号n的地址读取 lw $t0, 4($t1)从生成为[{1}}的地址读取 $t1 + 4从地址lw $t0, 0x10000读取。

除了第二个,所有都是伪指令。

0x10000加载地址。
la将符号la $t0, n的地址放在n$t0将生成的地址la $t0, 4($t1)放在$t1 + 4

这些都是伪指令。

$0立即加载。
li将直接10000放在li $t0, 10000中。

这是伪指令。

{{3}}
汇编程序通过生成两个或多个指令来绕过它 理论上不需要$t0la可用于加载符号的地址,因为在此上下文中所述地址是立即的,但引入了特定的助记符。