深度解剖c语言(函数栈帧)

1.内存结构

数据在内存中存储是低地址到高地址的
依次为代码区,字符常量区,已初始化的全局变量区,未初始化的,堆区,栈区
栈区和堆区是相向增长的,其中栈区数据高->低

请添加图片描述

2.认识相关寄存器

请添加图片描述

3.函数栈帧

main函数也是函数,也会创建函数栈帧
高级语言->汇编语言->机器语言,从汇编的角度分析

请添加图片描述
在这里插入图片描述

4.main函数栈帧分析

ebp-8,证明栈帧是高向低地址存储
eax说明数据临时拷贝到寄存器

请添加图片描述
在这里插入图片描述

临时拷贝:
1.临时拷贝的形成是在函数正式被调用之前就形成了的
2.形参实例化的顺序是从右到左的 ,Myadd(int a, int b)先b后a

请添加图片描述

5.Myadd函数栈帧

函数的栈帧是自己形成的。
减多少是谁决定?编译器
因为数据有类型,编译器是根据类型对应的变量分配

请添加图片描述

调用函数return返回到哪里?
寄存器,返回给函数调用方

在这里插入图片描述

总结

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"C语言深度解剖"是一本PDF电子书,它在内容上对C语言进行了全面而深入的剖析和解析。该电子书以书签的形式提供,这使得读者可以方便地浏览和导航书中的各个章节。 书中的内容涵盖了C语言的各个方面,包括基本语法、数据类型、运算符、控制语句、函数、指针等。每个章节都提供了详细的解释和示例,以帮助读者更好地理解和掌握C语言的各个概念和特性。 书签功能使得读者可以迅速定位到感兴趣的章节或部分。通过点击书签,读者可以跳转到所选章节的开头或指定的页面,从而节省时间并提高阅读效率。 对于初学者来说,"C语言深度解剖"提供了一个系统而详细的学习资源。读者可以按照自己的学习进度,逐步阅读不同章节,并通过书签功能进行快速导航。这种结构化的学习方式有助于初学者建立起对C语言的整体认识和理解。 对于有一定C语言基础的读者来说,"C语言深度解剖"也是一个很好的参考书籍。书中对于一些较为复杂或深奥的知识点进行了深入分析和讲解,可以帮助读者更深入地理解C语言的工作原理和内部机制。 总之,"C语言深度解剖"是一本内容详尽、结构清晰、带有书签功能的PDF电子书,适合不同层次的读者学习和参考。无论是初学者还是有经验的C语言开发者,都可以从中获取到有益的知识和信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值