Stack =========================================== 函数调用 ------------------------------------------- - 参数入栈,将参数从右到左压入系统栈 - 返回地址入栈,将当前代码区调用指令的下一条指令压入栈中,供函数返回时执行 - 代码区跳转,处理区从当前代码区跳转到被调用函数的入口 - 栈帧调整 - 保存当前栈帧,EBP入栈 - 切换到新栈帧,ESP装入EBP - 给新栈帧分配空间,ESP减去所需的空间,抬高栈顶 栈结构 ------------------------------------------- :: 栈底 ----------------- | ... | | ... | | ... | 较 | ... | 早 | ... | 的 | ... | 帧 | ... | | ... | ----------------- | ... | 调 | ... | 用 | ... | 者 ----------------- 的 +4 + 4n | 参数n | 帧 ----------------- | ... | | ... | | ... | ----------------- +8 | 参数1 | ----------------- +4 | 返回地址 | ----------------- | 保存的ebp | 当 ----------------- 前 -4 | 保存的 | 帧 | 寄存器 | | 本地变量 | | 临时变量 | ----------------- | 参数构造区域 | ----------------- 栈顶