0
我想知道,在單個函數中,當我通過beq或bne去別的地方時,創建了一個新的堆棧,或者因爲我仍然在同一個函數中,我的堆棧繼續?讓我通過一個例子來解釋我的問題。 在測試部分之前,我已經將$ t3的內容疊加到堆棧中,並且在測試後我想要達到它。是否有可能?在此先感謝訪問存儲在堆棧中的值MIPS
main:
addi $sp, $sp, -1
sb $t3,($sp) #t3 stores value 1 and I stored it into stack by this line
beq $t1 $t2 test #assume it holds
test:
lb $t7,($sp) # now I want to take 1 into $t7 here.Is it possible ??
addi $sp, $sp, 1
la $t7,($a0)
li $v0,4
syscall
li $v0,10
syscall
我不使用函數在我的代碼? – caesar
test是一個你用一個參數調用的函數。在彙編中,沒有單獨的函數語法,而是使用它們的方式來使它們起作用。無論如何,你爲什麼不使用$ t3的值並將其複製到$ t7中? '或$ t7,$ t3,$ t3' – m0skit0
當我去測試時,我是否會放棄我的堆棧:label?我的意思是我可以繼續從堆棧中的相同點? – caesar