Указатель стека 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 говорит что эта ячейка равна нулю, но почему? в ячейке есть номер, который я выделил, верно? но это так пусто, почему? благодарю вас

0 ответов

Другие вопросы по тегам