以下是代码问题:
push 5
call Factorial
当我从主要这样打电话时:
main PROC
push 5
call Factorial
exit
main ENDP
我的代码工作正常,但如果我将其称为:
main PROC
call Binomial
exit
main ENDP
Binomial PROC
push 5
call Factorial
Binomial ENDP
我在下面的代码中push eax
获得了堆栈溢出:
Factorial PROC
push ebp
mov ebp,esp
mov eax,[ebp+8]
cmp eax,0
ja L1
mov eax,1
jmp L2
L1:
dec eax
push eax
call Factorial
ReturnFact:
mov ebx,[ebp+8]
mul ebx
L2:
pop ebp
ret 4
Factorial ENDP
我无法弄清楚为什么,但是当我从main调用它时,Factorial过程按原样退出并返回到main,但是当它从Binomial调用时,而不是返回到Binomial,它会返回到Factorial ......我发现很奇怪。我在这里做错了吗?