Mips堆栈指针无法达到下一个堆栈值

时间:2018-04-01 09:37:57

标签: stack mips sp stack-pointer

我试图在火星上做一个程序,使用$ 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 个答案:

没有答案