如果我調用函數,我可以在該函數中使用jmp
命令返回到不同函數的一部分嗎?也就是說,是該代碼有效:Jmp從一個函數到另一個函數?
testfunction PROC
jmp jumppoint
ret
testfunction ENDP
main PROC
jumppoint:
call testfunction
main ENDP
END
如果這是有效的,它應該產生一個無限循環。是/否?
如果我調用函數,我可以在該函數中使用jmp
命令返回到不同函數的一部分嗎?也就是說,是該代碼有效:Jmp從一個函數到另一個函數?
testfunction PROC
jmp jumppoint
ret
testfunction ENDP
main PROC
jumppoint:
call testfunction
main ENDP
END
如果這是有效的,它應該產生一個無限循環。是/否?
如果通過「有效」,你的意思是彙編程序會讓你這樣做,答案是肯定的。它會引入一種無限循環;但是,由於call
指令會在每次執行時在堆棧上放置附加信息(返回地址),最終堆棧將溢出,程序將崩潰(如果您正在實模式下運行,則可能不會)。
它似乎是有效的,它會產生一個無限循環,爲什麼不運行它,看看你是否正確?
當然堆棧將過遵循,因爲它是有限0xFFFFFFFF
>= esp
> 0