汇编语言和C语言编写程序各有什么优缺点,C语言和汇编语言在单片机开发中,各有什么优缺点?...

汇编语言是低级语言,执行效率高但不易移植;C语言是高级语言,可读性强且移植容易。在单片机开发中,汇编能直接控制硬件,适合资源有限的场景,而C语言则适用于跨平台开发,提高开发效率。学习汇编有助于理解硬件原理,但在大型项目中,高级语言的便利性更受青睐。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。

C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。

汇编语言是低级语言,在编写程序的时候会把根据不同的情况指定使用不同的寻址方式,能够对内存和CPU里的通用寄存器直接操纵。不同的单片机系列会有不同的汇编语言

而C语言是高级语言,可以实现跨平台。编写程序无需指定CPU的指令执行情况,一段程序可以在不同体系结构的计算机上使用

c语言在编译的时候会进行汇编,转换为机器指令,才可以运行

准确的说,应该是不同指令集的CPU需要编译成不同的机器语言。

目前PC机的CPU的指令集都是一样的,所以,你在你的PC上编译了一份可执行文件,复制到你师兄的PC里面,也可以用,但是复制到平板电脑里,就无法使用了。

就如英语和汉语的区别,你的母语是汉语,就如单片机的母语是汇编语言。英语和C语言就是一种表达语言

C语言是当今最流行的程序设计语言之一,它的功能丰富、表达力强、使用灵活方便、应用面广、目标程序高、可植入性好,既有高级语言的特点,又有低级语言的许多特点,适合作为系统描述语言,既可以用来编写系统软件,也可以用来编写应用软件。

汇编的低级别语言,优点在于能够对硬件资源进行准确的操作,比如寄存器的使用和数据存储的具体位置。能充分运用硬件资源

缺点当然是编写起来麻烦,程序阅读麻烦

而c则相反,它都是编译器自动分配说需寄存器和数据存储单元,因此编写者不能分配

但c语法简单,程序可读性强

汇编语言属低级语言,而C语言是高级语言,所谓高级语言就是更容易被人们理解的语言,其实汇编语言能实现的功能往往也能通过C语言来实现,甚至用C语言会更简单,但是汇编语言有一个优势是其他任何语言所不具备的,这也是为什么汇编语言一直能在编程中占有一席之地,那就是汇编语言对硬件的直接控制,也就是说他能直接对硬件操作,可以绕过操作系统等等之类。虽然有的领域其他编程也能实现,但是在很多地方往往是汇编语言能更加简单,更加完美的完成。而且学好了汇编语言你就能对cpu是怎么工作的有了清晰的认识,所以学计算机专业的一般都会学汇编语言。

汇编语言是采用助记符号来编写程序的,用辅助符号代替机器语言的二进制码,就把机器语言变成了汇编语言。可以直接同计算机的底层软件甚至硬件进行交互。

编写的代码非常难懂,不好维护,所以出现一些面向过程的语言,C就是其中之一。C是可以说是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作。

汇编语言是用语言直接控制硬件,由硬件间接达到某种控制效果。而C语言是一种比较高级的语言,编写者可以不用去考虑硬件而直接去命令计算机达到这种控制效果。换而言之,汇编语言对描述过程更注重,C语言之类的高级语言更注重描述结果。例如汇编语言中变量的赋值语句为 MOV A B 可以解释为将A寄存器中的值复制至B寄存器。而C语言中直接表示为 b=a,解释为使b=a    芯片都是由门电路构成。门有通有断,对应在计算机代码里是二进制的1或0。如果直接进行人机对话,只能输入由0和1组成的代码才能交流。这样的代码太长,而且难记。所以人们想出一个办法,相互约定,用人们易读懂的特定表达方式去表达特定的计算机代码,再将此表达方式翻译成计算机能直接读懂的二进制代码。这样的一套方便人们表达的表达方式被称为计算机语言。

学习汇编可以更好地理解单片机的硬件原理,工作方式。

你还在学习 必然要从最底层学起 而且要尽量学好

越高级的语言实用越方便 开发效率更高 执行效率更低 但靠硬件速度 效果 功能等可以弥补 主要做较大项目时如果全用底层语言实在太累了

不管什么语言都是个工具 写程序真正重要的是你的思路 你的逻辑 你的想法 你要去哪才是目标 至于开手动档车去还是开自动档车去 那只是手段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值