A. c语言和汇编语言的关系
程序员编写的C语言代码,首先要经过C语言编译器,生成汇编代码,这个过程称为编译阶断,当C语言编译器生成汇编代码后,再调用汇编器来将汇编代码编译成汇编指令。
这是一种站在巨人肩人的作法,最早的C++编程语言也是这样的实现方法,只不过那时候叫Cfront程序,Cfront程序的作用是将C++代码转换成C语言代码,类似于一个文本处理器,然后再调用C语言编译器,将C源码编译成汇编代码,然后再调用汇编器将汇编代码编译成机器码。
这个过程,在Windows平台上不容易操作,但是在Linux平台上很容易看到。以gcc这款c语言编译器为例,它实际上是四个小程序。
cp: c语言预处理程序,有它负责进行预处理操作。
cc: C语言编译器,它负责将C源码编译成汇编代码。
as: 汇编器,它负责将汇编代码编译成机器码,一般使用gcc test.c这样的命令编译C语言时,会生成一个a.out的程序,它实际上指的就是as ouput,即汇编器输出文件。
link: 链接器,它负责将汇编器输入的机器码和库打包成一个操作系统可以运行的可执行文件,在Linux上的可执行文件格式是ELF格式,这个格式的实现是有链接器来完成的。
B. c语言和汇编语言的区别
C语言是需要经过机器语言解释和翻译才能被硬件执行的高级语言。
汇编是一种直接对于硬件操作的语言,属于低级语言,面向硬件。
另外:两种语言的语法也是完全不同的。你可以在网上找一些例子看看就知道区别了。
C. 汇编语言和C语言有什么联系吗,他们分别是干什么的
计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。
1. 机器语言
电子计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机的语言的基础。计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由“0”和“1”组成的指令序列交由计算机执行,这种语言,就是机器语言。使用机器语言是十分痛苦的,特别是在程序有错需要修改时,更是如此。而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。机器语言,是第一代计算机语言。
2. 汇编语言
为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“A D D”代表加法,“M O V”代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。
汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。
3. 高级语言
从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种这样的语言,这种语言接近于数学语言或人的自然语言,同时又不依赖于计算机硬件,编出的程序能在所有机器上通用。经过努力,1 9 5 4年,第一个完全脱离机器硬件的高级语言—F O RT R A N问世了,4 0多年来,共有几百种高级语言出现,有重要意义的有几十种,影响较大、使用较普遍的有F O RT R A N、A L G O L、C O B O L、B A S I C、L I S P、S N O B O L、P L / 1、P a s c a l、C、P R O L O G、A d a、C + +、V C、V B、D e l p h i、J AVA 等。
高级语言的发展也经历了从早期语言到结构化程序设计语言,从面向过程到非过程化程序语言的过程。相应地,软件的开发也由最初的个体手工作坊式的封闭式生产,发展为产业化、流水线式的工业化生产。
6 0年代中后期,软件越来越多,规模越来越大,而软件的生产基本上是人自为战,缺乏科学规范的系统规划与测试、评估标准,其恶果是大批耗费巨资建立起来的软件系统,由于含有错误而无法使用,甚至带来巨大损失,软件给人的感觉是越来越不可靠,以致几乎没有不出错的软件。这一切,极大地震动了计算机界,史称“软件危机”。人们认识到:大型程序的编制不同于写小程序,它应该是一项新的技术,应该像处理工程一样处理软件研制的全过程。程序的设计应易于保证正确性,也便于验证正确性。1 9 6 9年,提出了结构化程序设计方法,1 9 7 0年,第一个结构化程序设计语言—P a s c a l语言出现,标志着结构化程序设计时期的开始。
8 0年代初开始,在软件设计思想上,又产生了一次革命,其成果就是面向对象的程序设计。在此之前的高级语言,几乎都是面向过程的,程序的执行是流水线似的,在一个模块被执行完成前,人们不能干别的事,也无法动态地改变程序的执行方向。这和人们日常处理事物的方式是不一致的,对人而言是希望发生一件事就处理一件事,也就是说,不能面向过程,而应是面向具体的应用功能,也就是对象(o b j e c t)。其方法就是软件的集成化,如同硬件的集成电路一样,生产一些通用的、封装紧密的功能模块,称之为软件集成块,它与具体应用无关,但能相互组合,完成具体的应用功能,同时又能重复使用。对使用者来说,只关心它的接口(输入量、输出量)及能实现的功能,至于如何实现的,那是它内部的事,使用者完全不用关心,C + +、V B、D e l p h i就是典型代表。
高级语言的下一个发展目标是面向应用,也就是说:只需要告诉程序你要干什么,程序就能自动生成算法,自动进行处理,这就是非过程化的程序语言。
vc++是面向对象的高级语言
D. C语言与汇编语言有什么区别与联系
C语言当然一种
汇编是对于各种单片机特定的编写语句,对于不同总类的也不同
C语言是一种通用语言,虽然不同总类的单片机的汇编语言不同,但他们大部分可以用C语言编写,建议学好C语言
E. 汇编和c语言有什么区别和联系
汇编语言介于高级语言与机器语言之间;
c语言是高级语言。
F. 汇编语言与c语言的区别
用汇编语言编程,相当于,你自己开车。
用 C 语言编程,相当于,你坐出租车。
G. 汇编语言,C语言,C++之间都是什么关系怎么学习
首先你要知道 机器不认识那些c c++的高级语言
只认识机器码
机器码太难记 所以把操作码 即指令给替换成人类好记的符号
就成了汇编
然后c c++等高级语言是由编译器编译成机器码
低级语言很难学 高级语言好点
但是低级语言能够写出接近于底层的高级语言无法实现的功能
假如没有什么基础
推荐学习c# java等语言 简单点
H. 汇编语言和C语言有什么区别
1:
汇编语言是面向具体CPU及其硬件结构的语言
C语言可以做到硬件无关性
2:
汇编语言效率较高
C语言效率相对较低
3:
汇编语言是非结构语言,可读性较弱
C语言是结构语言,可读性较强
4:
汇编语言基本没有可移植性
C言可移植性很强
5:
汇编语言没有函数库,所有代码需要自己组织
C语言有丰富的函数库可供调用。
I. 汇编语言和c语言区别
汇编语言与C语言的区别:
1、在汇编语言中,为一个处理器编写的程序不能在另一种类型的处理器上运行。在C语言程序中,程序独立于处理器类型运行。
2、汇编语言代码的性能和准确性优于C代码。
3、C语言必须提供额外的指令来在计算机上运行代码。
4、汇编语言代码比C代码难以理解和调试。
5、 一个或两个C语言语句扩展为许多汇编语言代码。
6、汇编语言可以比C别更好地进行通信某些类型的硬件操作只能通过汇编语言执行。
7、在汇编语言中,我们可以直接读取物理地址上的指针,这在C别是不可能的。
8、在汇编语言中使用位更容易。
9、汇编程序用于在汇编语言中转换代码,而编译器用于在C编译代码。
10、C语言的可执行代码大于汇编语言代码,因此执行时间较长。
11、由于长的可执行代码,C程序的效率低于汇编语言程序。
12、与汇编程序员相比,C语言程序员不需要知道处理器中的寄存器等硬件细节。
13、最C的语言代码首先自动转换为汇编代码。