Допустим, вы представляете 2d массив как 1d массив. Вы можете получить элемент из указанного массива, выполнив:
array[n * row + col]
Где n - ширина, но в этом случае предположим, что высота и ширина одинаковы, поэтому это может быть просто n. Может быть, я обдумываю это, но я не могу придумать, как это можно сделать. Вы не можете компенсировать регистр. Я мог бы легко выполнять операции и сохранять их в регистрах, но из-за этого я не уверен, куда идти.
Как я могу сместить массив этим?
Редактировать: я немного покопался и нашел вопрос, который мне кажется похожим Добавление смещения к базе из регистра в 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)