1、两者编译组成不同。汇编语言是将由0、1组成的机器语言用具有简单语义的英文代码表示,而C语言不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等。
2、两者被计算机识别的路径不同。汇编语言通常用于对硬件的直接操控。而且C语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行。
3、两者用处不同。汇编语言通常用在程序中最核心的、控制硬件的代码,一方面是安全,另一方面提高运行速度。而C语言通常用在计算机外用功能上。
扩展资料:
汇编语言运行效率高的原因
汇编语言实质上是机器语言的助记符。 CPU只能运行它所支持的指令集,而这些指令集当中的每条指令都是一些二进制数的序列,也就是“0”和“1”的有序组合;“0”和“1”的组合不便于程序员的记忆因此有了“MOV A 0x40”等这样的助记符。
所以汇编语言编译成CPU可执行的机器语言其实只要做一个翻译的动作就好了。而C语言编写完程序后,需要通过编译器将C语言编译成与相应CPU指令集对应的机器语言。汇编语言与机器语言是一一对应的。
但是C语言,就没这么好了。C语言的语法是固定的,C语言编写的程序要编译成CPU能读懂的机器语言指令没办法一一对应,因此需要有编译规则了,所以运行效率低一些。也可以说,C语言,是面向程序员的语言,而汇编语言是直接面向CPU的语言。
参考资料来源:百度百科-c语言
参考资料来源:百度百科-汇编语言
C语言和汇编语言的区别在于他们之间优缺点几乎是相反的。
C语言和汇编语言的优缺点:以c来举例
优点:
c的运行效率高;
c可以实现硬件的直接访问;
c代码的移植性好;
缺点:
c的代码复用性差;
c的代码维护性差;
c的扩展性差,即如果想增加新功能,需要修改较多的代码;
c语言的可读性差;
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言;尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
汇编语言:是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
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的语言代码首先自动转换为汇编代码。