我有一个寄存器($t2),其中包含一个随机生成的数字,然后我将该数字乘以4。我的问题是,在使用lw指令时,是否可以将$t2中的值用作偏移量?
beq87vna1#
在MIPS中,您可以使用寄存器、偏移量或两者相加;而不是两个寄存器来形成有效地址。因此,如果要将单个寄存器所指向的字加载到(比如$t0)中,则应执行以下操作:
$t0
lw $t0, ($t2)
然而,如果要将有效地址$t1 + $t2指向的字加载到$t0,则首先需要执行加法,然后从存储器加载该字,例如:
$t1 + $t2
addu $t1, $t1, $t2 lw $t0, ($t1)
考虑到执行加法会丢失$t1先前的值,因此应使用一些空闲寄存器作为加法的目标。
$t1
1条答案
按热度按时间beq87vna1#
在MIPS中,您可以使用寄存器、偏移量或两者相加;而不是两个寄存器来形成有效地址。
因此,如果要将单个寄存器所指向的字加载到(比如
$t0
)中,则应执行以下操作:然而,如果要将有效地址
$t1 + $t2
指向的字加载到$t0
,则首先需要执行加法,然后从存储器加载该字,例如:考虑到执行加法会丢失
$t1
先前的值,因此应使用一些空闲寄存器作为加法的目标。