1
我試圖編寫一個簡單的循環來調用它自己並記錄它循環的次數。當我通過它一步,一旦ECX
命中0內部recursive PROC
,它跳到RET
內L1
- I 0之後,認爲這將返回main PROC
無法從遞歸循環返回到主PROC - Stack Overflow
我的理解是,當一個程序被調用時推棧上的指令指針然後當RET
被調用時,它會彈出並返回到該點。
; Calls a recursive procedure
;
INCLUDE Irvine32.inc
.data
constant DWORD 5
count DWORD ?
.code
main PROC
mov eax, 0
mov ecx, constant
CALL recursive
main ENDP
recursive PROC
add eax, 1
loop L1
ret
L1:
CALL recursive
ret
recursive ENDP
END main
當我把RET
出L1
我得到「沒有源代碼可用」頁面,在可視s 2013年
爲了回到'main',你必須執行和你一樣多的'RET's。如果你繼續邁步,會發生什麼? – Michael 2015-03-31 05:27:00