Я очень новичок в сборке MIPS и хочу убедиться, что я изучаю основы, прежде чем опередить себя. Мне дали следующие параметры и код для работы:
Напишите код сборки MIPS, соответствующий псевдокоду ниже. Предположим, что адрес для целого числа i - это базовый адрес + 4, а адрес для [0] - это базовый адрес + 8. Предположим, что базовый адрес хранится в $ gp. Код инициализирует i в 0; затем он выполняет итерацию от i = 0 до i = 4, устанавливая a [i] = 8i в каждой итерации. Чтобы сделать ваш код эффективным, я должен быть загружен в регистр в начале, и он должен обновляться в памяти только после того, как вы закончили для l oop
for (i=0; i<5; i++)
a[i] = 8*i;
Это мое лучшее предположение относительно того, как должен выглядеть MIPS
lw $s0 4($gp)
addi $t0 $gp 8
lw $s1 $t0
Loop:
bge $s0 4 Exit
lw $s1 $t0
mul $s1 8 $s0
addi $s0 $s0 1
addi $t0 $t0 4
j Loop
Exit:
Если есть концепция или метод, который я делаю неправильно, любая помощь будет отличной