2012-04-17 32 views
-1

如果我調用函數,我可以在該函數中使用jmp命令返回到不同函數的一部分嗎?也就是說,是該代碼有效:Jmp從一個函數到另一個函數?

testfunction PROC 
    jmp jumppoint 
    ret 
testfunction ENDP 


main PROC 
jumppoint: 
    call testfunction 
main ENDP 
END 

如果這是有效的,它應該產生一個無限循環。是/否?

回答

2

如果通過「有效」,你的意思是彙編程序會讓你這樣做,答案是肯定的。它會引入一種無限循環;但是,由於call指令會在每次執行時在堆棧上放置附加信息(返回地址),最終堆棧將溢出,程序將崩潰(如果您正在實模式下運行,則可能不會)。

0

它似乎是有效的,它會產生一個無限循環,爲什麼不運行它,看看你是否正確?

當然堆棧將過遵循,因爲它是有限0xFFFFFFFF>= esp> 0

相關問題