函数堆栈框架的形成 ° call XXX 执行cl前 esp >执行cal时,cs:eip原来的值 ebp 指向cl下一条指令,该值被 esp 保存到栈顶,然后cs:eip的值 esp ebp低地址 elp 指向xx的入口地址 esp 令进入 XXX 58 >第一条指令: pushl%ebp >第二条指令:mow%esp,%ebp 函数体中的常规操作,可能会压栈、出栈 ◆退出xXx eop movl %ebp, %esp 高地址 popl %ebp ret 嵌入式系统实验室 EMBEDDED SYSTEM LAB口RAT口RY SU:MDU INTHUTE OR AOVANCLD STUOY D USTt函数堆栈框架的形成 ❖ call xxx ➢ 执行call之前 ➢ 执行call时,cs : eip原来的值 指向call下一条指令,该值被 保存到栈顶,然后cs : eip的值 指向xxx的入口地址 ❖ 进入xxx ➢ 第一条指令: pushl %ebp ➢ 第二条指令: movl %esp, %ebp ➢ 函数体中的常规操作,可能会压栈、出栈 ❖ 退出xxx ➢ movl %ebp,%esp ➢ popl %ebp ➢ ret esp ebp 高地址 低地址 cs : eip esp ebp esp ebp esp