我知道这个话题已经在这里和互联网上的其他地方被报道过令人作呕- 但希望这个问题是一个简单的问题,因为我试图让我的头脑围绕组装......
因此,如果我理解正确,ebp(基本指针)将指向堆栈的顶部,而 esp(堆栈指针)将指向底部——因为堆栈向下增长。esp 因此指向“当前位置”。因此,在函数调用中,一旦您将 ebp 保存在堆栈上,您就会插入一个新的堆栈帧 - 用于该函数。因此,在下图中,如果您从 N-3 开始,您将通过函数调用转到 N-2。但是当你在 N-2 时 - 你的 ebp == 25 和 esp == 24 (至少在最初,在任何数据放入堆栈之前)?
这是正确的还是我在这里切线?
谢谢!
(来源:wikimedia.org)