
从编码到生成可执行的binary文件是有好几个过程的:(默认已完成编码)
1, 预编译(预处理), 也就是替换工作, 先把代码中的宏做替换, 条件编译等会做处理,为编译做作准备;
2,编译,包括了语法的检查,汇编代码等中间代码的生成,代码优化,obj文件(也算是目标代码)的生成,已经是有机器码了;
3库的合成,这个不一定有,不是必须的;
4链接, 连接器会按照一定的规则,比如根据连接脚步,把code组织起来,生成elf文件(elf可能不是一个所有通用的格式),这个时候已经可以执行了,里面的可以执行的机器码;
5,裁剪, 可以把elf文件中的非必需的段 strip,生成一个更精简的elf文件;
6,binary的生成,objcopy命令可以把elf文件转换成binary文件,binary文件烧录到存储器中可以直击运行。
C语言之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言。
1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。
20世纪60年代,美国AT&T公司贝尔实验室(AT&T Bell Laboratory)的研究员Ken Thompson闲来无事,手痒难耐,想玩一个他自己编的,模拟在太阳系航行的电子游戏——Space Travel。他背着老板,找到了台空闲的机器——PDP-7。但这台机器没有 *** 作系统,而游戏必须使用 *** 作系统的一些功能,于是他着手为PDP-7开发 *** 作系统。后来,这个 *** 作系统被命名为——UNIX。
1970年,美国贝尔实验室的 Ken Thompson,以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX *** 作系统。
1971年,同样酷爱Space Travel的Dennis MRitchie为了能早点儿玩上游戏,加入了Thompson的开发项目,合作开发UNIX。他的主要工作是改造B语言,使其更成熟。
1972年,美国贝尔实验室的 DMRitchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了UNIX。此时,编程的乐趣使他们已经完全忘记了那个"Space Travel",一门心思地投入到了UNIX和C语言的开发中。随着UNIX的发展,C语言自身也在不断地完善。直到今天,各种版本的UNIX内核和周边工具仍然使用C语言作为最主要的开发语言,其中还有不少继承Thompson和Ritchie之手的代码。
在开发中,他们还考虑把UNIX移植到其他类型的计算机上使用。C语言强大的移植性(Portability)在此显现。机器语言和汇编语言都不具有移植性,为x86开发的程序,不可能在Alpha,SPARC和ARM等机器上运行。而C语言程序则可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可运行。
va获得android的imei号权限添加 TelephonyManager telephonyManager = (TelephonyManager) this getSystemService(ContextTELEPHONY_SERVICE); String IMEI = telephonyManagergetDeviceId(); adb命令获得:adb shell dumpsys iphonesubinfo有时候返回为空是因为,模块电源关闭了。重置后需要打开模块电源才能读出来查看机器的一些系统设置参数adb shell getprop
c语言属于一种机器语言吗?
机器语言是直接用二进位制程式码指令表达的计算机语言,指令是用0和1组成的一串程式码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义,C语言是一种计算机程式设计语言。它既有高阶语言的特点,又具有组合语言的特点。它可以作为系统设计语言,编写工作系统应用程式,也可以作为应用程式设计语言,编写不依赖计算机硬体的应用程式。因此,它的应用范围广泛。C语言要编译成机器语言才能被计算机识别执行
( )是一种符号化的机器语言。 A)C语言 B)组合语言 C)机器语言 D)计算机语言B
机器语言:是由二进位制程式码表示的指令系统的语言,是唯一能由计算机直接识别的语言。
组合语言:是符号化的机器语言,由与机器语言指令一一对应的符号指令和简单语法组成。组合语言需要经过汇编程式将其翻译成机器语言,才能被计算机识别。
高阶语言:是一种比较接近自然语言和数学表示式的一种计算机程式设计语言。一般用高阶语言编写的程式称为“源程式”,计算机不能识别和执行,要把用高阶语言编写的源程式翻译成机器语言,通常有编译和解释两种方式。
组合语言、机器语言 C语言组合语言:组合语言是一种用于电子计算机、微处理器、微控制器或其他可程式设计器件的低阶语言,亦称为符号语言。在组合语言中,用助记符代替机器指令的 *** 作码,用地址符号或标号代替指令或运算元的地址。在不同的装置中,组合语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的组合语言和特定的机器语言指令集是一一对应的,因此不同平台之间不可直接移植。
组合语言不像其他大多数的程式设计语言一样被广泛用于程式设计。在今天的实际应用中,它通常被应用在底层,硬体 *** 作和高要求的程式优化的场合。驱动程式、嵌入式作业系统和实时执行程式都需要组合语言。
机器语言:机器语言是用二进位制程式码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬体结构赋予计算机的 *** 作功能。机器语言具有灵活、直接执行和速度快等特点。不同型号的计算机其机器语言是不相通的,按著一种计算机的机器指令编制的程式,不能在另一种计算机上执行。
现代机器语言的踪迹已经近乎消失(主要用于编译器转码的过程中),取而代之的是组合语言。在组合语言中,各个指令都有对应的机器码,经过编译器的编译,汇编程式码被直接转换为了可以直接被CPU执行的机器语言。
C语言:C语言是一门通用计算机程式语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低阶储存器、产生少量的机器码以及不需要任何执行环境支援便能执行的程式语言。尽管C语言提供了许多低阶处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程式可在许多电脑平台上进行编译。一些C语言程式码甚至可以直接移植到嵌入式处理器(微控制器)的平台。
三者之间的关系(从硬体层到软体层):机器语言 - 组合语言 - C语言。
机器语言属于低阶语言,组合语言属于高阶语言组合语言也是低阶语言。高阶语言是指C语言等接近自然语言的一类。
组合语言和机器语言属于什么语言组合语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可程式设计器件的低阶语言,亦称为符号语言。在组合语言中,用助记符(Mnemonics)代替机器指令的 *** 作码,用地址符号(Symbol)或标号(Label)代替指令或运算元的地址。在不同的装置中,组合语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的组合语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
许多汇编程式为程式开发、汇编控制、辅助除错提供了额外的支援机制。有的组合语言程式设计工具经常会提供巨集,它们也被称为巨集汇编器。
组合语言不像其他大多数的程式设计语言一样被广泛用于程式设计。在今天的实际应用中,它通常被应用在底层,硬体 *** 作和高要求的程式优化的场合。驱动程式、嵌入式作业系统和实时执行程式都需要组合语言。
机器语言是用二进位制程式码表示的计算机能直接识别和执行的一种机器指令的集合,它是计算机的设计者通过计算机的硬体结构赋予计算机的 *** 作功能。机器语言具有灵活、直接执行和速度快等特点。不同型号的计算机其机器语言是不相通的,按著一种计算机的机器指令编制的程式,不能在另一种计算机上执行。
一条指令就是机器语言的一个语句,它是一组有意义的二进位制程式码,指令的基本格式如, *** 作码栏位和地址码栏位,其中 *** 作码指明了指令的 *** 作性质及功能,地址码则给出了运算元或运算元的地址。
用机器语言编写程式,程式设计人员要首先熟记所用计算机的全部指令程式码和程式码的涵义。手程式设计序时,程式设计师得自己处理每条指令和每一资料的储存分配和输入输出,还得记住程式设计过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程式花费的时间往往是实际执行时间的几十倍或几百倍。而且,编出的程式全是些0和1的指令程式码,直观性差,还容易出错。除了计算机生产厂家的专业人员外,绝大多数的程式设计师已经不再去学习机器语言了。
高阶语言是指C语言等接近自然语言的一类。
以下属于高阶语言的有( ) a 机器语言 b C语言 c 以上都是 d 组合语言
呵呵~~~
以下属于高阶语言的有(b ) a 机器语言 b C语言 c 以上都是 d 组合语言
C/C艹属于 A 机器语言 B 组合语言 C 高阶语言 D 低阶语言属于低阶语言——但这题出得太没水平,比较准确的说法是C/C++属于组合语言和高阶语言之间且比较靠近汇编的语言;特别是C,开发者的初衷就是代替组合语言的。
下列( )属于符号语言。 A,机器语言 B,人工语言 C,组合语言 D,高阶语言选C,组合语言就是把机器语言的二进位制程式码对应成汇编的符号,进行程式设计,所以,组合语言属于符号语言。
采纳哦
以下程式语言中,________是面向机器的低阶语言 A机器语言 B。C语言 C。BASIC语言 D。组合语言选d,组合语言
组合语言(AssemblyLanguage)是面向机器的程式设计语言
面向机器的低阶语言,通常是为特定的计算机或系列计算机
二进位制码专门设计的。
以上就是关于C语言编译到机器码的过程求详细解说,不胜感激全部的内容,包括:C语言编译到机器码的过程求详细解说,不胜感激、C语言名称的由来、如何在android下用c语言获取imei号码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)