8

xiaoxiao2021-02-27  190

#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函数大体结束

总体栈分析

转载请注明原文地址: https://www.6miu.com/read-12457.html

最新回复(0)