我知道这个话题已经被过度讨论了,无论是在这里还是在其他互联网地方,但希望问题很简单,因为我试图理解汇编语言......
所以如果我理解正确,ebp(基指针)将指向栈顶,esp(栈指针)将指向底部--因为栈向下增长。esp因此指向“当前位置”。 因此,在函数调用时,一旦您已将ebp保存在堆栈上,您就会插入一个新的堆栈帧-用于该函数。因此,在下面的图像中,如果您从N-3开始,将使用函数调用转到N-2。但是当您在N-2时,您的ebp是否等于25而esp等于24(至少在放置任何数据在堆栈上之前)?
这是正确的吗,还是我离题了?
谢谢!
(来源:wikimedia.org)