‘壹’ c语言与汇编语言在用途上有什么各有什么优点
一般来说C语言等高级语言编译后都会转换成汇编代码,汇编代码可以直接转换成机器代码。也就是说汇编起着高级语言和底层二进制代码的桥梁作用。因为汇编是非常底层的语言,因此CPU执行的机器码几乎是根据你实际编写的汇编代码一条一条的执行的(这句话实际不是很准确,考虑到流水线,相关等情况,执行的情况会比较复杂,先简单这样表述),所以效率很高,代码段执行的时间可以精确计算。而C语言等高级语言要经过编译转换成汇编这一环节,而编译器一般比较“笨”,所以有时转换的汇编代码比程序员自己写的汇编代码长的多,执行效率就差了不少。如
汇编代码:NOP; c 语言代码 for(i=0;i<3;i++),汇编代码执行的时间是三个机器周期,而C语言代码
NOP; {;}
NOP;
一般大于三个机器周期。
由于汇编代码执行的效率高,执行的时间周期准确,因此在存储空间有限、定时要求准确的程序中广泛使用:如BIOS 起始代码等。C语言一般是用在应用程序的开发。
二者在移植性也存在差别,汇编代码跟具体的CPU架构相关,如arm的汇编代码就和x86不一样,因此汇编是不可移植的,c语言是可以移植的。
‘贰’ 汇编语言和c语言各自优缺点
C语言编属于高级语言,具有可移植性,能够结构化编程。使用标准C语言的程序,几乎都可以不作改变移植到不同的微机平台上,对于嵌入式等的微控制芯片,属于标准C语言的部分也很少需要修改,而且程序很容易读懂。
C语言编写程序结构清晰,移植性好,容易维护和修改。
汇编语言针对不同的操作系统平台,不同的微控制器,指令都是完全不同的,即使指令相似,也不具有可移植性。但是汇编语言是针对专门的控制器的,所以运行速度可以精确到一个指令周期。汇编语言的程序读懂需要借助微控制器的指令手册以及各个寄存器的说明,所以很难读懂。
汇编语言编写代码实时性强,能够直接控制硬件的工作状态,但是不具有可移植性,维护和修改困难。
‘叁’ 在使用单片机中,汇编语言和c语言各有什么优缺点
一、汇编语言:
缺点:汇编语言属于低级语言,难理解,编程效率低,编程容易出错。
优点:程序执行效率高,占用资源少, 方便对最底层的一些东西进行操作。
二、C语言:
缺点:危险性高,开发周期长,可移植性不如JAVA。
优点:语句少但是灵活度高,针对过程的言语相比于非结构化言语条理性很好接近人类的逻辑思维,相比于模块化言语和面向对象的言语他又比较接近底层的一些东西,而且效率也高(只比汇编低%10~20)移植性也好。
(3)汇编语言和c语言特点扩展阅读:
不难看出机器语言作为一种编程语言, 灵活性较差可阅读性也很差,为了减轻机器语言带给软件工程师的不适应,人们对机器语言进行了升级和改进:用一些容易理解和记忆的字母,单词来代替一个特定的指令。
通过这种方法,人们很容易去阅读 已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营维护都变得更加简单方便,这种语言就是我们所说的汇编语言, 即第二代计算机语言。
‘肆’ C语言和汇编语言的区别是什么
区别如下:
(1)两者编译组成不同。汇编语言是将由0、1组成的机器语言用具有简单语义的英文代码表示,而C语言不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等。
(2)两者被计算机识别的路径不同。汇编语言通常用于对硬件的直接操控。而且C语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行。
(3)两者用处不同。汇编语言通常用在程序中最核心的、控制硬件的代码,一方面是安全,另一方面提高运行速度。而C语言通常用在计算机外用功能上。
(4)两者学习难易程度不同。汇编语言所需要的编绘知识很多很复杂,经常被开发者使用。而C语言是一门很简单方便的语言,编程者也就不需要有太多的专业知识。
计算机语言(Computer Language)指用于人与计算机之间通讯的语言。计算机语言是人与计算机之间传递信息的媒介。计算机系统最大特征是指令通过一种语言传达给机器。计算机语言从低级到高级可以分为:
(1)机器语言,即由0、1组成的机器硬件可以识别的语言;
(2)低级语言,即汇编语言
(3)中级语言,如C语言
(4)高级语言,如C++,JAVA,C#等。
(4)汇编语言和c语言特点扩展阅读:
如今通用的编程语言有两种形式:汇编语言和高级语言。
汇编语言和机器语言实质是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,容易识别和记忆。源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高级语言主要是相对于低级语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如流行的vb、vc、foxpro、delphi等,这些语言的语法、命令格式都各不相同。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:解释类和编译类。
‘伍’ 汇编语言与C语言有什么区别
1、操作复杂程度的不同
c语言,与汇编语言相比,c语言在更加接近人的一般思维,因此在程序的设计过程中比较容易操作,此外在进行一些复杂的操作,运算时,c语言比汇编就要简单很多,尤其是c语言中的丰富的函数库,可以直接实现一些原本很复杂的功能,并且从代码量来说任意一个c语言程序,通过反汇编之后变成汇编语言程序,其长度都可能要增加好几倍。
2、使用范围的不同
c语言程序的事件将会只是编写汇编语言程序的几分之一,从编写程序的效率上来说c语言无疑更高,此外C语言是高级程序语言因此可移植性较好,不太受到到硬件设备的限制。
在实现一个功能时,汇编语言可以直接奔着目标去,而C语言则是给你提供了一种对于对于这种问题的普遍处理办法,不具有针对性,因此会有许多多余的在这个问题中不需要的过程,因此可能回事程序较大,运行较慢。相对与汇编语言,C语言更加适合一些较大型项目的开发。
3、运行的速度和效率不同
程序没有了汇编语言计算机直接就无法运行,因为汇编语言是基于计算机底层硬件的编程,通过它实现了对cpu,内存,硬盘以及外界设备的直接操作,因为直接所以汇编语言在程序的大小,执行的速度与效率方面几乎无可比拟,但是也是因为直接,所以汇编程序难以移植,且完成相同的操作代码量太大,在进行一些大的项目是,单独使用汇编进行编程几乎不可能实现。
‘陆’ 单片机C语言与汇编语言各有什么特点
首先,单片机在初始发展的时候应用的都是汇编语言,汇编语言属于低级语言,但是也有它特色的地方,更加的贴近硬件,你要搞清楚你的数据要存哪里,变量再哪个位置,cpu运行时时寄存器的变量变化等等,也让你更清楚单片机里的一些资源,但是毕竟这样比较麻烦,但代码冗余小,执行效率高等优势也是汇编有一定的发展,也在初期单片机所需要提供小型的控制功能得以发挥,但是功能越来越复杂的单片机的编程汇编显得越来越麻烦,开发的效率也大大降低,所以发展到现在很多地方已经以c语言代替了汇编,尤其现在的单片机资源丰富,不怕代码复杂点,我们要的就是开发效率,当然这两种语言还是有它的各自的优势,所以还是都有存在。概括一下,汇编适合简单但要求执行效率高的时候,c语言适合系统复杂,又要求开发比较快速的时候,然后现在单片机做的越来越好,c的代码执行也蛮高了,所以c语言比汇编用的越来越多了
‘柒’ 汇编语言和C语言有什么不同
C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛
汇编语言(Assembly Language)是面向机器的程序设计语言.汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言”作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM, TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。
‘捌’ c语言和汇编语言的区别
C语言是需要经过机器语言解释和翻译才能被硬件执行的高级语言。
汇编是一种直接对于硬件操作的语言,属于低级语言,面向硬件。
另外:两种语言的语法也是完全不同的。你可以在网上找一些例子看看就知道区别了。
‘玖’ 汇编语言和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的语言代码首先自动转换为汇编代码。