C语言笔记——番外篇 函数栈帧的创建

建议安装VS2013可以详细查看栈帧创建过程,本篇了解为主。

寄存器eax,ebx,ecx,edx,ebp,esp 

ebp,esp这两个寄存器中存放的是地址,这两个地址维护的是用来函数栈帧的。每一个函数调用都要在栈区创建一个空间。

在VS2013中,main函数是被其他函数调用的:_tmainCRTStartup, mainCRTStartup

#include <stdio.h>

int Add(int x, int y)
{
	int z = 0;
	z = x + y;
	return z;
}


int main()
{
	int a = 10;
	int b = 20;
	int c = 0;
	c = Add(a, b);
	printf("%d\n", c);

	return 0;
}

C语言笔记——番外篇 函数栈帧的创建 C语言笔记——番外篇 函数栈帧的创建

 C语言笔记——番外篇 函数栈帧的创建

 

C语言笔记——番外篇 函数栈帧的创建

C语言笔记——番外篇 函数栈帧的创建 

 C语言笔记——番外篇 函数栈帧的创建

 

 C语言笔记——番外篇 函数栈帧的创建

C语言笔记——番外篇 函数栈帧的创建 

C语言笔记——番外篇 函数栈帧的创建 

C语言笔记——番外篇 函数栈帧的创建 

C语言笔记——番外篇 函数栈帧的创建 

C语言笔记——番外篇 函数栈帧的创建 

C语言笔记——番外篇 函数栈帧的创建 

C语言笔记——番外篇 函数栈帧的创建 

 如果这篇文章对你有所帮助,请点个赞吧!欢迎大家留下评论,和博主友好交流!

 

上一篇:关于递归的理解


下一篇:你不知道的JavaScript(五)内置对象模版