8_4 C语言| 函数栈帧分析

来源:互联网 发布:公司抽奖软件 编辑:程序博客网 时间:2024/05/17 05:10
#include <stdio.h>int add(int x, int y){int z = 0;z = x+y;return z;}int main(){int ret = 0;ret = add(5,7);return 0;}

main函数初始化,ebp指向栈底,esp指向栈顶;


创建局部变量 ret = 0ebp向上偏移4个字节



进入add函数前,首先将传入参数(形参)进栈,并压入进入函数下一条指令地址;


进入add函数


进入add函数时进行的空间初始化,然后给z变量初始化,并进行加法运算并赋给z;


edi,esi,ebx出栈


add函数结束,进入main函数


main函数大体结束


总体栈分析



原创粉丝点击