当前位置:首页 » 《资源分享》 » 正文

内功心法秘籍之函数栈帧(附图详解)_wzd547191555的博客

7 人参与  2021年10月31日 13:03  分类 : 《资源分享》  评论

点击全文阅读


C语言内功心法秘籍——函数栈帧

  • 前言
    • 准备工作
    • 寄存器
    • __tmainCRTStartup()函数
    • main()函数建立
    • Add()函数建立
    • Add函数的销毁过程
    • main()函数的销毁过程
    • 全图预览
    • 结语言

前言

在我们学习C语言的时候我们是否对自己进行过以下灵魂拷问
1.局部变量到底是如何建立的呢?
2.函数内存又是如何开辟的?
3.函数传参的过程又是怎样完成的呢?

如果你不太了解,那么我只能说:咦咦咦~~~,还不赶快随我修习这篇心法口诀,带你学习C语言的内功秘籍!!!

准备工作

博主:大大怪先森(记得关注哦!)
编程环境:vs2013
代码案例:

#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 = 0; 
	c = Add(a, b);
	printf("%d\n", c);
	return 0;
}

简易图解了解让你不会一脸懵逼
在这里插入图片描述
本文汇编基本语句

push:入栈操作
pop:出栈操作
call:call指令
mov:赋值操作
sub:减法操作
lea:下载有效地址(load effective adress)

寄存器

在了解函数的栈帧问题,我们必然不能不先了解一下寄存器到底是个啥和寄存器有哪些?

  1. 寄存器
    中央处理器内的组成部份。它跟CPU有关。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。** ,(其实这些也不是重点,看不懂也没关系,说实话我作为一名IT小白的我也看不懂,我们只需要知道寄存器是独立于内存之外,集成到CPU上的就行)
  2. 寄存器的分类
    一般寄存器:AX、BX、CX、DX
    AX:累积暂存器,BX:基底暂存器,CX:计数暂存器,DX:资料暂存器
    索引暂存器:SI、DI
    SI:来源索引暂存器,DI:目的索引暂存器
    堆叠、基底暂存器:SP、BP
    SP:堆叠指标暂存器,BP:基底指标暂存器
    esp:寄存器存放当前线程的栈顶指针
    ebp:寄存器存放当前线程的栈底指针
    本篇文章所用到的全部寄存器,如果想要更加的深入了解寄存器,留下你的一键三连,后续会更新哦!你的支持就是我的动力。

__tmainCRTStartup()函数

看到这个函数我们肯定想这是个啥???
Alt
不用担心这只是一个小小的用来调用主函数main()的一个奇葩函数而已,如图:
在这里插入图片描述
看得到这里通过函数的栈区,我们可以发现原来__tmainCRTStartup()函数原来也是别人来调用的呀!果然计算机也会套娃!但是看到这里我只发现我知道原来main函数也是被这个_tmainCRTStartup()所调用,它自己又是被别人调用,那这些又是如何实现的呢?别急往下看!下面两幅图将带你真正理解main()的创建历程!!!
在这里插入图片描述
在这里插入图片描述

main()函数建立

在这里插入图片描述

在这里插入图片描述

Add()函数建立

建立过程:
在这里插入图片描述
在这里插入图片描述

Add函数的销毁过程

销毁过程:
在这里插入图片描述
在这里插入图片描述

main()函数的销毁过程

跟着小编学习了Add函数的销毁过程你是否也能自己做出main()函数的创建过程呢?
赶紧动动自己的小脑筋思考一下吧!!!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

全图预览

在这里插入图片描述

结语言

希望本篇文章能给各位带来帮助,如有不足还请指正!!!
码字不易,各位大大给个收藏点赞吧!!!

在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/30312.html

寄存器  函数  过程  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 谢尽长安花+后续+结局沈照霜宁砚完本_谢尽长安花+后续+结局(沈照霜宁砚)
  • 不见青山存完结(霍青秦兮霍宴)_不见青山存完结霍青秦兮霍宴
  • 他的干妹妹怀孕后,我闪婚了文集(林诺陆深)全书免费_(林诺陆深)他的干妹妹怀孕后,我闪婚了文集后续(林诺陆深)
  • 江先生,你要听话列表列表_江先生,你要听话列表(许清欢江砚舟)
  • 一抹斜阳相思泪后续+必读夏知微陆远川完本_一抹斜阳相思泪后续+必读(夏知微陆远川)
  • 「不当假少爷后,我娶了首富当老婆」免费试读_萧寒沈凌薇章节多结局预体验‌
  • 全书浏览我死后,数万网友对我进行审判火爆(董天华尹瑶)_我死后,数万网友对我进行审判火爆(董天华尹瑶)全书结局
  • 纨绔恶少抽盲盒选妻子,我换嫁绝嗣总裁后他发疯求原谅+免费+后续列表_纨绔恶少抽盲盒选妻子,我换嫁绝嗣总裁后他发疯求原谅+免费+后续(阮玉绵)
  • 完结文晚云为落日溺亡++后续列表_完结文晚云为落日溺亡++后续(裴念舒)
  • [修仙:我在云疆养仙蚕]章节多结局预体验‌_「林珂」小说无删减版在线阅读
  • 全书浏览我死后,数万网友对我进行审判++番外(董天华尹瑶)_我死后,数万网友对我进行审判++番外(董天华尹瑶)全书结局
  • 被兄弟俩接连当工具人后,我杀疯了后续+(贺云舟)全书免费_(贺云舟)被兄弟俩接连当工具人后,我杀疯了后续+后续(贺云舟)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1