MIPS寄存器中的值偏移量

时间:2013-02-24 05:39:30

标签: mips

我有一个寄存器($ t2),它有一个随机生成的数字,然后乘以4.我的问题是,当使用lw指令时,是否可以使用$ t2中的值作为偏移量?

1 个答案:

答案 0 :(得分:6)

在MIPS中,您可以使用寄存器,偏移量或两者的相加;但不是两个登记册形成一个有效的地址。

因此,如果您想将单个寄存器指向的单词加载到$t0中,您可以这样做:

lw $t0, ($t2)

但是,如果要将有效地址$t1 + $t2指向的单词加载到$t0,首先需要执行添加,然后从内存中加载单词,例如:

addu $t1, $t1, $t2
lw $t0, ($t1)

考虑到通过执行添加,您将丢失$t1之前的值,因此您应该使用一些免费注册作为添加的目标。