Итак, я делаю домашнее задание, и проблема в том, чтобы попросить меня сохранить инструкцию в реестре.это проблема.
Предположим, что значения a, b, i и j находятся в регистрах $ s0, $ s1, $ t0 и $ t1 соответственно.Кроме того, предположим, что регистр $ s2 содержит базовый адрес массива D.
for(i=0; i<a; i++)
for(j=0; j<b; j++)
D[4*j] = i + j;
, который необходимо записать в MIPS, и у меня почти 90% его, с чем у меня возникают проблемы, это сохранениерезультаты от i + j до D [4 * j].это код, который у меня есть внутри вложенного цикла.
add $t2, $t0, $t1 # add i to j and store to temp
sll $t3, $t1, 4 # offset of j*4
add $t3, $s2, $t3 #add offset with base of D
обычно, другие проблемы дают мне значение адреса, как B [8], так что я бы просто использовал константу 32. нос сохранением с использованием переменной, я не уверен, как это сделать, так как это требует константы.Я почти уверен, что sw $t2, 0($t3)($s2)
не будет работать.Я просто пропускаю очевидное?