Не могу понять, что делает этот лв - PullRequest
0 голосов
/ 26 апреля 2019

Я должен найти код mips этой инструкции C: B [8] = A [ij] Переменные i, j находятся в регистрах $ s3, $ s4, а базовые адреса A и B -$ s6, $ s7 Когда я читаю решения, я не могу понять, почему в инструкции lw (третья строка кода) мне нужно указать смещение.Разве я не вычислил это во второй строке?

Спасибо и извините за любую английскую ошибку.

'' 'Mips code

sub $t0,$s3,$s4
add $t0,$s6,$t0
lw  $t1,16($t0)
sw $t1,32($s7)

' ''

1 Ответ

0 голосов
/ 26 апреля 2019

Здесь вы рассчитываете смещение байт :

sub $t0,$s3,$s4

Если мы предположим, что элементы в ваших массивах - это слова (4 байта) - поскольку вы используете lw и sw - тогда вам необходимо соответствующим образом масштабировать это смещение:

sll $t0, $t0, 2    # $t0 *= 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...