找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10608|回复: 9
收起左侧

关于单片机用汇编语言和C语言的区别

[复制链接]
ID:241942 发表于 2017-10-25 21:04 | 显示全部楼层 |阅读模式
说实话学了挺久的单片机,一直接触的都是汇编语言,然后一直在想汇编和C的区别在哪里,也请教过别人,但是答案都是似是而非的,所以想请各位能详细的说一下两者之间的区别是什么?
回复

使用道具 举报

ID:155507 发表于 2017-10-26 00:43 | 显示全部楼层
汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。

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

汇编语言是低级语言,在编写程序的时候会把根据不同的情况指定使用不同的寻址方式,能够对内存和CPU里的通用寄存器直接操纵。不同的单片机系列会有不同的汇编语言
而C语言是高级语言,可以实现跨平台。编写程序无需指定CPU的指令执行情况,一段程序可以在不同体系结构的计算机上使用
回复

使用道具 举报

ID:155507 发表于 2017-10-26 00:44 | 显示全部楼层
c语言在编译的时候会进行汇编,转换为机器指令,才可以运行
准确的说,应该是不同指令集的CPU需要编译成不同的机器语言。
目前PC机的CPU的指令集都是一样的,所以,你在你的PC上编译了一份可执行文件,复制到你同学的PC里面,也可以用,但是复制到平板电脑里,就无法使用了。

回复

使用道具 举报

ID:155507 发表于 2017-10-26 00:45 | 显示全部楼层
就如英语和汉语的区别,你的母语是汉语,就如单片机的母语是汇编语言。英语和C语言就是一种表达语言

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

汇编的低级别语言,优点在于能够对硬件资源进行准确的操作,比如寄存器的使用和数据存储的具体位置。能充分运用硬件资源
缺点当然是编写起来麻烦,程序阅读麻烦
而c则相反,它都是编译器自动分配说需寄存器和数据存储单元,因此编写者不能分配
但c语法简单,程序可读性强
回复

使用道具 举报

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

使用道具 举报

ID:243003 发表于 2017-10-26 01:21 | 显示全部楼层
学C吧,汇编现在开发更底层
回复

使用道具 举报

ID:213173 发表于 2017-10-26 06:34 | 显示全部楼层
开始自学汇编语言,十多天还一头雾水,决定放弃改学C语言,一个星期就能写简单程序,十多天就上阵实战。谁优谁劣不敢评说,C语言容易上手这一点是肯定的。
回复

使用道具 举报

ID:59768 发表于 2017-10-26 08:03 | 显示全部楼层
用汇编的都是大牛,C移植性好
回复

使用道具 举报

ID:242770 发表于 2017-10-26 08:28 | 显示全部楼层
c语言在编译的时候会进行汇编,转换为机器指令,我来说说两种语言的选择,首先,大多数工作两种语言都可以实现,并且C语言简单,易用,易维护,其次,在某些特定的操作,比如发脉冲,C语言太难了吧,几乎不可能。
回复

使用道具 举报

ID:123289 发表于 2017-10-26 09:56 | 显示全部楼层
C是个编程平台,当你用C写好程序后,平台会把你的程序编译成汇编,而后再生成运行代码。
可见C浮在汇编的上面!
为何要多此一举呢:就如同,为何不直接写代码,而写汇编一样。更方便你理解。
如果你有能力直接写汇编,当然比C更直接,也省去了C的条条框框。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表