如何在MIPS中以n * row + col偏移数组?

时间:2018-11-09 03:28:08

标签: mips

假设您将2d数组表示为1d数组。您可以通过执行以下操作从所述数组中获取元素:

array[n * row + col]

其中n是宽度,但是在这种情况下,假设高度和宽度相同,因此可以为n。我可能对此太想了,但我想不出任何办法。您不能通过寄存器进行偏移。我可以轻松地执行这些操作并将它们存储在寄存器中,但是由于这个原因,我不确定从那里去哪里。

如何用此偏移数组?

编辑:我做了一些挖掘,发现了一个我认为与Adding offset to base from register in MIPS类似的问题

我对此进行了修改。这是正确的吗?

mul     $t0, $s0, $s1 # n * row
add     $t1, $t0, $s2 # (n * row) + col
sll     $t1, $t1, 2
add     $s3, $s3, $t1
lw      $v0, 0($s3)

0 个答案:

没有答案