假设您将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)