您的位置:首页 > 其它

函数堆栈

2016-03-18 15:34 134 查看
EBP:栈底指针寄存器

ESP:栈顶指针寄存器

EBP大,ESP小,压栈时ESP变小,EBP不变。

对于_cdecl,调用一个函数的时候,先从右向左压栈,在把call指令的下一个指令的地址压栈,进入被调用函数,被调用函数结束时,依次出栈。返回到函数调用前的指令继续执行。

开始调用,先将ebp1压栈,然后将现在的栈顶esp1作为函数调用时的栈底

00413700 push ebp

00413701 mov ebp,esp

结束调用

00413728 mov esp,ebp

还原栈顶指针

0041372A pop ebp

还原栈底指针

0041372B ret

返回到函数调用前的指令继续执行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: