摘要:
前面详细的说了,C函数调用的过程中,栈的变化情况的原理部分,这里在看一下汇编代码的真正的实现。有关前面的那一片博客,主要记住的就是函数调用时栈的变化,4+3+2的步骤:(1)设置栈帧边界(2)开辟本函数的局部区域(3)保存寄存器的内容(4)初始化局部区域(int3)(5)如果有函数调用(a)push... 阅读全文
摘要:
这篇blog试图说明这么一个问题,当一个c函数被调用时,一个栈帧(stack frame)是如何被建立,又如何被消除的。这些细节跟操作系统平台及编译器的实现有关,下面的描述是针对运行在Linux的gcc编译器而言的。c语言的标准并没有描述实现的方式。所以,不同的编译器、不同的操作系统都可能有自己的建... 阅读全文