Является ли следующее выражение правильным в MIPS - PullRequest
0 голосов
/ 28 мая 2018

Я выполняю задание, и мне просто интересно, правильно ли я сделал это выражение.Выражение равно f = -g - A[4]

f равно $s0, g равно $s1, а базовый адрес для A равен $s6

subu $t1, $zero, $s1 // negate g
addi $t2, $zero, 4   // index for A
add  $t3, $t2, $s6   // put A[4] in $t3
subu $s0, $t1, $t3   // f = -g -A[4]

1 Ответ

0 голосов
/ 28 мая 2018

Это не правильно.

Во-первых, результат зависит от типа A, потому что вам нужно добавить разные значения, чтобы получить смещение.

Более того, вы не оченьнужен отдельный add для расчета смещения постоянного элемента массива.Вы можете использовать addi $t3, $s6, 4, если A - байтовый массив, или addi $t3, $s6, 16, если это словесный массив.Конечно, вам это понадобится, когда индекс большой или когда это переменная

Однако вам также необходимо загрузить значение с этого вычисленного адреса

lw $t4, 0($t3)

, поскольку добавление адресов недать вам то, что хранится в этом адресе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...