Как сместить массив на n * row + col в MIPS? - PullRequest
0 голосов
/ 09 ноября 2018

Допустим, вы представляете 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...