C语言和汇编语言的区别是什么?

Python014

C语言和汇编语言的区别是什么?,第1张

区别如下:

1、效率不同

汇编效率高,C语言效率比较低。

2、对硬件的可操控性不同

汇编对硬件的可操控性强,C语言硬件可操控性比较差。

3、代码体积大小不同

汇编目标代码体积小,C语言目标代码体积大。

4、维护性不同

汇编不易维护,C语言容易维护。

5、可移植性不同

汇编可移植性很差,C语言可移植性很好。

扩展资料:

汇编语言运行效率高的原因

汇编语言实质上是机器语言的助记符。 CPU只能运行它所支持的指令集,而这些指令集当中的每条指令都是一些二进制数的序列,也就是“0”和“1”的有序组合;“0”和“1”的组合不便于程序员的记忆因此有了“MOV A 0x40”等这样的助记符。

所以汇编语言编译成CPU可执行的机器语言其实只要做一个翻译的动作就好了。而C语言编写完程序后,需要通过编译器将C语言编译成与相应CPU指令集对应的机器语言。汇编语言与机器语言是一一对应的。

但是C语言,就没这么好了。C语言的语法是固定的,C语言编写的程序要编译成CPU能读懂的机器语言指令没办法一一对应,因此需要有编译规则了,所以运行效率低一些。也可以说,C语言,是面向程序员的语言,而汇编语言是直接面向CPU的语言。

参考资料来源:百度百科-C语言

参考资料来源:百度百科-汇编语言

楼上都不懂。

C相对汇编来说的优势主要在移植性上和开发效率上。程序执行效率不如汇编。所以如果不关注程序执行效率的话,推荐用C.当然,现在绝大部分的处理器都有C编译器。

但是为什么8086上采用汇编语言呢?

最主要的的原因是,8086有足够多的通用寄存器

为什么有足够多的通用寄存器就不需要用C了呢?

原因在于,你就不需要层层压栈来控制参数的保存和传递,而这在C里都是编译器为你自动分配的。在C里,对你而言只要知道你定义的变量名就可以,而不需要知道编译器是如何分配内存单元或者寄存器来存储你的变量。当你拥有了足够多的通用寄存器,用汇编做小程序不是更简单?