Converting Assemble - Попытка преобразовать этот ассемблерный код в код c - PullRequest
0 голосов
/ 23 октября 2018

Пытаясь ответить на этот вопрос, но я не знаю, как в этом случае вы выписали бы $ s0 = everything:

Предположим, что переменные g, h, i и j назначенырегистрирует $ s1, $ s2, $ s3 и $ s4 соответственно в приведенном ниже коде.Предположим, что базовый адрес массива A находится в регистре $ s5.

Code:
addi $s0, $s1, -4
add $s0, $s0, $s2
add $s0, $s0, $s3
sub $s0, $s0, $s4
sw $s0, 24($s5)

Для приведенных выше инструкций по сборке MIPS, что является соответствующим оператором C?

1 Ответ

0 голосов
/ 25 октября 2018

Если вы подставите переменные во что-то псевдо-С, используя s0, то есть $ s0:

s0 = g-4
s0 = s0 + h
s0 = s0 + i
s0 = s0 - j
A[6] = s0

Индекс 6 использует слово размером 32 (4 байта), поэтому 24/4

Итак, заменив s0:

A[6] = g - 4 + h + i - j;
...