栈帧

1.定义:C语言中,每个栈帧对应着一个未运行完的函数。栈帧中保存了该函数的返回地址和局部变量。栈帧也叫过程活动记录,栈帧就是一个函数执行的环境,按照后进先出的原则存储数据,先进入的数据被压栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。
2.相关概念
栈是向下生长,内存由高地址到低地址。
ebp:帧指针,栈底,指向栈帧的开始,寻址用
bsp:栈指针,随数据移动,指向栈顶
pc:程序寄疏器,指向当前指令的下一条指令
3.栈帧图
函数调用例子(不写头文件)

int fun(int x, int y)
{
   int c = 0xcccccccc;
   return c ;
}
int main()
{
   int a = 0xaaaaaaaa;
   int b = 0xbbbbbbbb;
   int ret = fun(a,b);
   printf("you should running here!\n")
   return 0;
}

栈帧图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值