
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
C语言是许多软件开发程序员都需要熟练掌握的一种编程开发语言,而本文我们就通过案例分析来简单了解一下,C语言与汇编之间的关系分析。
C变量
C语言是如何把各种类型的变量转换成对应的汇编语言呢?
高级语言更容易被工程师理解,而汇编语言这样的低级语言,则更容易被机器解读。这是因为汇编语言里的大部分内容都跟机器语言一一对应,你可以这样理解,汇编语言就是把机器语言符号化。
汇编器会将汇编源代码生成二进制程序文件。在程序二进制文件里有很多段。其中text段和data段在文件里占用位置空间,text段存放了程序指令的二进制数据,data段放着各种已经初始化的数据。二进制文件里还有个更特殊的bss段,它不占用文件的位置空间,而是在文件头里记录bss段的大小。
一旦text、data段加载到内存中运行,就会占用内存空间,自然也就对应到实际的内存。至于bss段,操作台会根据文件头里记录的大小给它分配内存空间,并初始为0
C语言结构体中的字段则要用多个.byte、.word操作符的组合实现变量定义,汇编器会根据.byte、.word来分配变量的内存空间,标号就是对应的地址。这个变量的内存空间,当程序处于非运行状态时就反映在程序文件中;一旦程序加载到内存中运行,其中的变量就会加载到内存里,对应在相应的内存地址上。
二进制文件variable.bin一共有16字节,5到7个字节和13到15个字节为填充字节,这是为了让地址可以按32位对齐。我们可以看到i变量占用4个字节空间,chars变量占用1个字节空间,d结构体变量占用8个字节,里面有两个成员变量a和c。
C语言函数
了解一下C语言是怎么把函数转换成汇编语言的。
函数是C语言中非常重要的组成部分,要用C语言完成一个实际的功能,就需要至少写一个函数,可见函数就是C语言中对一段功能代码的抽象。一个函数就是一个执行过程,有输入参数也有返回结果(根据需要可有可无),可以调用其它函数,也被其它函数调用。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!请读者仅作参考。更多内容请加抖音达内三江区域学习了解。