函数的调用过程(栈帧)

本文详细解析了C语言函数调用时的栈帧原理,从准备工作到函数调用的整个过程,包括栈帧结构、main函数初始化、调用myadd函数的步骤,以及函数返回。通过具体的汇编指令分析,阐述了栈帧如何帮助理解C语言的函数执行机制。
摘要由CSDN通过智能技术生成

通俗的说,栈帧就是C语言函数在调用的过程中的调用原理,就是当我们执行一个函数操作的时候,它的内部是如何实现的。栈帧不属于我们学习c的范围,但是栈帧对我们了解c有很大的帮助,所以让我们一起来学习学习栈帧吧!

一、 准备工作

1.在我们的c程序中第一个运行的不是main()函数而是mainCRTStartup()函数,main()函数是被mainCRTStartup()函数调用的。我们在VC6.0的环境下调试:查看—调试窗口—call stack(查看堆栈),如下图所示:

我们在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

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值