通俗的说,栈帧就是C语言函数在调用的过程中的调用原理,就是当我们执行一个函数操作的时候,它的内部是如何实现的。栈帧不属于我们学习c的范围,但是栈帧对我们了解c有很大的帮助,所以让我们一起来学习学习栈帧吧!
一、 准备工作
1.在我们的c程序中第一个运行的不是main()函数而是mainCRTStartup()函数,main()函数是被mainCRTStartup()函数调用的。我们在VC6.0的环境下调试:查看—调试窗口—call stack(查看堆栈),如下图所示:
2.了解基本的地址空间。
3.常见的几种寄存器:
1)eax、ebx、ecx等存放变量;
2)ebp表示栈底寄存器;
3)exp表示栈顶寄存器;
4)eip(pc指针):程序计数器,保存当前正在执行指令的下一条指令地址。
4.了解CPU的基本用法:
5.了解常见的汇编指令:
1)mov:将后面的数据移动到前面的地址空间中
2)push:出栈
3)pop