【发布时间】:2011-08-02 18:24:56
【问题描述】:
我正在尝试在 Assembly 中实现递归斐波那契程序。但是,我的程序崩溃了,出现了一个未处理的异常,我似乎无法找出问题所在。我不怀疑这涉及我对堆栈的不当使用,但我似乎无法指出在哪里......
.386
.model Flat
public Fibonacci
include iosmacros.inc ;includes macros for outputting to the screen
.code
Fibonacci proc
MOV EAX, [EBP+8]
CMP EAX, 1
JA Recurse
MOV ECX, 1
JMP exit
Recurse:
DEC EAX
MOV EDX, EAX
PUSH EAX
CALL Fibonacci
ADD ESP, 4
MOV EBX, ECX
DEC EDX
PUSH EDX
CALL Fibonacci
ADD ECX, EBX
exit:
ret
Fibonacci endp
.data
end
此外,我已将用于获取斐波那契值的数字推送到外部过程中的堆栈。有什么想法可能出在哪里吗?
【问题讨论】: