Мне нужно реализовать этот код в эмуляторе MARS:
int x[10] = { /* initial values */ } ;
int i;
for(i=0; i<10; i++){
print i;
}
for (i=0; i<10; i++){
x[i] = 2*i+1;
print x[i];
}
Вот что у меня есть:
.data
i: .word 0
x: .word 1,2,3,4,5,6,7,8,9,10
.align 2
.text
.globl main
main:
lw $t0, i
lw $t1, x
li $t4, 4
jal L0
li $t0, 0
jal L1
li $v0, 10 # terminate
syscall
L0:
li $v0, 1
la $a0, ($t0)
syscall
addi $t0, $t0, 1
bge $t0,10, RETURN #goto L1 if NOT n<0
b L0
L1:
li $v0, 1
la $a0, ($t1)
syscall
mul $t2, $t0, $t4
lw $t1, x + ($t2) #########this line#########
addi $t0, $t0, 1
bge $t0,10, RETURN
b L1
RETURN:
jr $ra
Я прокомментировал рядом со строкой, что я считаю источником моей проблемы. По сути, это строка, которая ссылается на x [i]. Я умножил i на 4 и добавил это значение к x, пытаясь сослаться на соответствующее слово в массиве. Я не знаю, как правильно реализовать эту концепцию.
Спасибо за помощь.