Указатель стека Mips не может достичь следующего значения стека
Я пытаюсь сделать программу на Марсе, которая, используя $sp, может перейти к следующему адресу стека и прочитать значение:
fine_while:
add $a0, $S,$a2
li $v0, 1
syscall
move $t5, $sp#indirizzo iniziale
move $sp, $t6 #indiirzzi di -51
subi $sp, $sp, 4 #shifto di una podizione il sp ora come se 2 fosse quello iniziale.probabilmente i negativ occupano + byte
lw $a2, ($sp)
move $t6, $sp #e lo pongo uguale ad a2 #ATTENZIONE! qui stai ponendo il ad a2 l'indirizzo!!!
move $sp, $t5#riprsitino l sp
#incremenro sp di 4 per prepararmk ad immagazinare 4
#chiamare un nuobo elmeneto (4) e mettilo
li $v0 , 5
syscall
move $a1, $v0
subi $sp, $sp, 4
sw $a1,($sp)
beqz $a1 , end
sub $S, $S,$a2 #qui difatti stai sottraendo l indirzzo e non il contenuto...
add $S,$S, $a1
j fine_while
это только часть источника, потому что есть другие операции (у меня есть последовательность чисел, и я сохранил ее в стеке), проблема в том, что в определенное время, когда я прыгаю на следующий адрес стека, чтобы достичь следующего числа, Mips говорит что эта ячейка равна нулю, но почему? в ячейке есть номер, который я выделил, верно? но это так пусто, почему? благодарю вас