函数栈帧创建
Posted Jack Chao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数栈帧创建相关的知识,希望对你有一定的参考价值。
我们在编译代码的时候是不是真的有去想过代码是怎么运行的吗?在代码的最深处到底有什么秘密,就让我来为你们来找找吧。
在了解这些内容之前,我们先要了解什么是栈。
栈就像是手枪的弹夹,
里面的子弹都是先进后出的对吧,栈也是一样的。
之后我们要了解一下他是怎么运行的。
CPU中的通用寄存器有:EAX EBX ECX EDX。
栈顶通常是ESP寄存器
栈底通常是EBP寄存器
当我们运行一行代码的时候汇编就会用到一些语句来运行
我们先来看一个很简单的代码
#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 = Add(a,b);
printf("%d" , c);
return 0;
我们先来看一张图片
这张图片就结合了图像进行解释。里面有各种解释,各位大佬就看图理解。小弟先行告退了。
以上是关于函数栈帧创建的主要内容,如果未能解决你的问题,请参考以下文章