找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 97397|回复: 1082
收起左侧

学习单片机用汇编还是C比较好

  [复制链接]
ID:425850 发表于 2018-11-13 22:13 | 显示全部楼层 |阅读模式

单选投票, 共有 1776 人参与投票
86.77% (1541)
4.05% (72)
9.18% (163)
您所在的用户组没有投票权限
回复

使用道具 举报

ID:383215 发表于 2018-11-19 12:32 | 显示全部楼层
这个话题按好坏之分讨论下去毫无意义,汇编语言和C语言不存在好坏之分,而是各有优点。汇编语言是基础,没有汇编语言的基础,C语言肯定编不好,汇编语言是走路,C语言就是跑步,路都走不好的人,跑步也跑不了多远。C语言编程效率高,但是,产生的代码比汇编语言长10%以上,汇编语言产生的代码比较短,但是,编程效率太低,对于程序代码没有要求的单片机电路,肯定选择C语言。假如一个量产100万件的电路,单片机程序是2K,结果是C语言的代码超过2K,换一种单片机哪怕增加一毛钱,就增加了10万,用汇编语言代码可以控制在2K以内,为了这10万元,你肯定愿意选择汇编语言。C语言能编成功的程序,汇编语言一定可以做到,而且代码更短,用编程成功的C语言,改为汇编语言,难度也不算太大。汇编语言可以编写出最紧凑的程序代码,让单片机的运行速度达到最大化,这一点,C语言根本做不到,C语言的高效率编程也是汇编语言无法做到的,但是,C语言编程的代价就是增加了程序代码,在一定程度上拖慢了单片机的运行速度。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:429287 发表于 2018-11-19 16:27 | 显示全部楼层
C语言实际上已经成为了中级语言的事实上的标准,如果你从事嵌入式开发、芯片设计等,C语言是必须懂的基础;在高级语言上,C语言的简练和精确也具备特殊的优势;VC的强大在Windows平台上其它语言更是难与之相匹敌,在Unix/Linux平台上,C语言也是最终要的语言,Linux的内核也主要是以C语言写的。

当然C语言也有缺点:就是难,容易出错,因为它的数据类型需要精确,而导致不够深入理解的程序员常容易犯错。

一句话:专业的编程,一定要学C语言;业余水平的,可以直接从VB等入手。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:431465 发表于 2018-11-22 21:22 | 显示全部楼层
开发当然是用C,又快又易懂好维护,但是想要优化程序还是要懂汇编的,要不然实现同样一个功能的程序,好的程序员可以把程序设计得又短又快,而不做优化的可能会又臭又长,2K以下可以搞定的,你非要搞到4K以上去那最终产品的成本每个至少会相差几毛到一两块钱,而且成本升高时质量却是下降的,这样当然就不好了,所以我个人认为做单片机编程,应当是汇编和C都会才是最好的,次一点的是会C,且能大致看懂汇编,可以帮助优化C程序, 只会汇编,一个程序开发下来,得花几周到几个月,开发成本太高了,不值得 只会C完全不懂汇编,那也是很难做出高质量的单片机程序的

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:431225 发表于 2018-11-28 11:03 | 显示全部楼层
客观的说,汇编更适合单片机,编写的程序相对c语言来说会更加的简洁,运行的速度也会更快,你的程序如果写的很长,相对于c语言来说外人就不是那么好给你修改了,汇编语言每个人的思维以及写的方式都不尽相同,c语言更符合人类的逻辑习惯,初学汇编可能会很难,但是当你入门之后你会感觉写程序很轻松。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:430861 发表于 2018-12-8 16:53 | 显示全部楼层
这没法比较,一般来讲程序较小,实时性要求较高的情况下当然是汇编,程序较大、比较复杂尤其是有比较多工程计算的肯定是C了,像石英钟、秒表这样的,汇编非常适合。用汇编语言还有一个好处就是乐趣性比较大,你可以100%控制所有资源,目标代码的长度你在汇编之前就可以确定,C语言的话毕竟中间隔了个编译器。你要喜欢玩硬件的话,汇编语言不可替代。而且同一个工程你也不必要做2选一的选择,部分代码可以由汇编语言生成,诸如由定时器产生的中断程序就非常适合用汇编语言写,而复杂的部分可由C语言来写。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:670373 发表于 2019-12-24 00:04 | 显示全部楼层
它们是可以相互依托的,比如要求开发速度,我们可以尽量用c或c++,因为它们都比用汇编完成任务速度要快。比如要求执行速度,我们必须考虑使用汇编,因为汇编的速度大体要比c或c++快5%~15%,另外我们还可以考虑用c或c++来嵌套汇编完成。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:671287 发表于 2019-12-25 21:42 来自手机 | 显示全部楼层
单片机编程用C语言或汇编语言都可以,但是我建议用C语言比较好,模块化管理编程方便,移植性强,适合编写大程序。如果原来有C语言的基础那学起来会更好,如果没有,也可以边学单片机边学C语言。虽然很多人是从汇编语言开始接触单片机的,但是写小程序汇编语言还是简单的,如果要实现一些算法,那汇编语言就不简单了。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:887202 发表于 2021-8-6 16:11 | 显示全部楼层
建议学习C吧,汇编确实由他的优势,快速,内存利用率高,执行效率高,但是随着单片机这个行业的发展,单片机的功能越来越强大,实现的功能越来越复杂,不可能都去用汇编写代码,开发效率上面太低下了,除了一些低端的8位单片机可能还会用汇编意外,高端的单片机的开发基本的模式会变成官方提供一个SDK给你,你调用写好接口就可以实现功能,不用具体去查看寄存器这些东西。看看STM32 为什么这么多人用,除了本身功能强大意外,官方的各种支持各种库让开发门槛大大降低,开发周期大大缩短,现在的32位单片机缺那么一点存储空间?时钟基本都是32M起步,缺那一点执行的时间?正式这些原因STM32才能大量的占领市场,拥有大量的开发人员,同样一个功能,用官方SDK一个星期就能开发完,汇编都不知道写到什么时候去了,C语言才是更好的选择

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:155507 发表于 2018-11-14 06:25 | 显示全部楼层
我也是喜欢用汇编。但是也要会C语言,最起码要能读的懂。
汇编语言的优势在于程序简洁,占用内存少,效率高。比较直观。
可以说,除非单片机(不仅仅是单片机)没有该功能,否则没有汇编做不到的。c语言就不一定。
其实熟练的掌握汇编后,学C语言,不用花多大功夫。
回复

使用道具 举报

ID:111634 发表于 2018-11-14 08:09 | 显示全部楼层
总体是用c好。
回复

使用道具 举报

ID:387733 发表于 2018-11-14 08:11 | 显示全部楼层
学习单片机,看你的侧重面,要想快,且偏重于编程,那就从C开始学。如果想学得深,软硬件兼顾,那就应该从汇编开始。虽然汇编不便于移植,但是汇编更精炼,更贴近硬件。学了汇编再学C,才能更好地扬长避短,设计出好的系统。
回复

使用道具 举报

ID:426147 发表于 2018-11-14 08:50 | 显示全部楼层
汇编虽然逻辑简单,但是没有C语言简练,初学简单的可以用汇编,但是编写一些复杂一点的还是用C比较方便
回复

使用道具 举报

ID:223470 发表于 2018-11-14 09:44 | 显示全部楼层
可以使用C语言入门,汇编语言比较底层,可以在熟悉一定的寄存器后再使用汇编。
回复

使用道具 举报

ID:397054 发表于 2018-11-14 10:15 | 显示全部楼层
这没法比较,一般来讲程序较小,实时性要求较高的情况下当然是汇编,程序较大、比较复杂尤其是有比较多工程计算的肯定是C了,像石英钟、秒表这样的,汇编非常适合。用汇编语言还有一个好处就是乐趣性比较大,你可以100%控制所有资源,目标代码的长度你在汇编之前就可以确定,C语言的话毕竟中间隔了个编译器。你要喜欢玩硬件的话,汇编语言不可替代。而且同一个工程你也不必要做2选一的选择,部分代码可以由汇编语言生成,诸如由定时器产生的中断程序就非常适合用汇编语言写,而复杂的部分可由C语言来写。
回复

使用道具 举报

ID:426221 发表于 2018-11-14 10:38 | 显示全部楼层
C吧,C语言通用性好一些
回复

使用道具 举报

ID:234560 发表于 2018-11-14 11:07 | 显示全部楼层
百分之九十九点九九的事情都可以用C搞定,除非有特殊需求否则真用不到汇编,但懂汇编还是很重要的。
回复

使用道具 举报

ID:426249 发表于 2018-11-14 11:18 | 显示全部楼层
都可以
回复

使用道具 举报

ID:426285 发表于 2018-11-14 12:30 | 显示全部楼层
C语言通用性好一些
回复

使用道具 举报

ID:334261 发表于 2018-11-14 12:54 | 显示全部楼层
汇编针对原理进行编程,C语言更加直观,可以汇编为辅,C语言为主,入门会比较快
回复

使用道具 举报

ID:426303 发表于 2018-11-14 13:23 来自手机 | 显示全部楼层
我觉得还是C语言比较好用,汇编语言相比C语言来说更为复杂,C语言相对来说比较灵活,使用方便
回复

使用道具 举报

ID:426320 发表于 2018-11-14 13:34 来自手机 | 显示全部楼层
c好用点吧,毕竟基础语言
回复

使用道具 举报

ID:426330 发表于 2018-11-14 13:57 | 显示全部楼层
C更好点
回复

使用道具 举报

ID:401564 发表于 2018-11-14 14:10 | 显示全部楼层
没有说哪个好不好的,针对的东西不一样,很多时候是没有什么可比性,用C的话意思就是说:我不需要用到汇编的那些个优点,反过来也是一样的,用汇编的话:我不需要C的那些优点.
很重要的一点:C语言你是一定要会的,毕竟,面试的时候这一关是肯定要过的.
至于你学单片机要用什么语言去学,选择没有那么难的:用汇编入门,然后再学C语言.
再说点别的吧:在小代工厂里面一般,用汇编的比较多,主要是稳定性和成本问题,在方案公司里就不同了,主要是用C,做方案快,你走人了,下一个接手也容易.
就工资而言,如果你不进入嵌入式领域,纯汇编的工资是要比纯用C的工资高的,因为,工业级的东西,老板是不会在乎你用什么语言来写的,他只管看成本,能用9毛9的单片机,他肯定不会用1块的,特别是小家电这一块,用的大多是台系的8位单片机,稳定性不好,资源有限,C根本写不下,有的型号的单片机程序空间竟然是用B来做单位的.
如果你要进入嵌入式领域,却还在相关汇编,那就是你OUT了,除非是要精确到一个时钟的时间精度,汇编是没有什么用处的,一个16位数除法,你只能用减去去进行,更不用说什么算法之类的的了.
汇编优点在于时间精度和代码空间,C优点在于功能强大,没什么好比的.想学什么就学什么,或者是自己觉得学什么容易就学什么,已经开始学C了就不要学汇编了,我就是用汇编的,虽然代码的空间上是比C占用得少,但代码量多呀!一个小程序,完整的写下来,动不动就是上千行代码,一个指令写错了,能让你找一个星期......

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:426359 发表于 2018-11-14 14:33 | 显示全部楼层
我个人觉得还是c语言好
回复

使用道具 举报

ID:426386 发表于 2018-11-14 15:00 | 显示全部楼层
建议用C语言编程,C语言代码可移植性比汇编好太多,而且适用于单片机的RTOS基本都是C语言编写成的。另外一个,汇编写代码需要考虑的细节太多,不利于我们快速编写符合要求的应用程序。

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:426416 发表于 2018-11-14 15:32 | 显示全部楼层
2K以下的代码可以用汇编。。。。。。
汇编看的头疼,反正我是没用过的。
新手小白可在某宝上搜索 51单片机开发 远程服务
回复

使用道具 举报

ID:338181 发表于 2018-11-14 15:38 | 显示全部楼层
c语言是最基本的阿东西,接触的东西也更多,可以让你对系统有更好的了解。
回复

使用道具 举报

ID:426063 发表于 2018-11-14 15:43 | 显示全部楼层
汇编比较基础,可以帮助你更好地从底层了解单片机,如果刚开始,还是建议用C,单片机硬件可以看书,软件高级语言方便阅读。加油
回复

使用道具 举报

ID:426432 发表于 2018-11-14 15:44 | 显示全部楼层
都是可以的,汇编总的来说比C难,C才是主流
回复

使用道具 举报

ID:426432 发表于 2018-11-14 15:45 | 显示全部楼层
都可以的,但是C是主流,汇编比较底层,也比较不好移植
回复

使用道具 举报

ID:425915 发表于 2018-11-14 15:49 | 显示全部楼层
大部分还是C语言
回复

使用道具 举报

ID:426444 发表于 2018-11-14 15:56 来自手机 | 显示全部楼层
c语言,个人感觉c语言方便
回复

使用道具 举报

ID:425384 发表于 2018-11-14 16:39 | 显示全部楼层
C语言比较好理解,运用了很多函数,如果有C语言的基础的话,用C还是很好学的,要想快,且偏重于编程,那就从C开始学。汇编语言要记得指令很多,差不多有100多条指令,用汇编的话一开始要下很大功夫,但是一旦熟练地学会了,那就可以达到软硬件兼顾。虽然汇编不便于移植,复杂的程序难编写,但是汇编更精炼,更贴近硬件,能深入到机器层面来理解问题。
回复

使用道具 举报

ID:426485 发表于 2018-11-14 17:00 | 显示全部楼层
就我目前学习情况看,我觉得C语言优势比汇编大很多。C语言比汇编更简单易懂,编写方便;目前大部分的单片机都支持C语言编程
回复

使用道具 举报

ID:426549 发表于 2018-11-14 17:50 | 显示全部楼层
个人觉得汇编相对难一点,需要记得东西太多,还是C比较好用些。
回复

使用道具 举报

ID:401804 发表于 2018-11-14 18:51 | 显示全部楼层
先学习C语言哦,C语言更简单,并且现在的单片机程序基本上都用C语言写更加简单哦,汇编学起来较难点,虽然学会了汇编可以更好的了解程序的运行过程,用汇编编写代码量非常大也要求思路很清楚,对于新手来说最好就用C哦,比如叫你写了延时函数,用C很简单,几句话就可以,但汇编的话 你首先得知道有哪些寄存器,代码也比较多
回复

使用道具 举报

ID:426296 发表于 2018-11-14 18:56 | 显示全部楼层
C语言通用性好一些
回复

使用道具 举报

ID:426600 发表于 2018-11-14 19:20 | 显示全部楼层
初学一定要学c语言
回复

使用道具 举报

ID:426633 发表于 2018-11-14 20:12 | 显示全部楼层
我是从c入门的,都没学过汇编,至少我觉得c还不错吧
回复

使用道具 举报

ID:426659 发表于 2018-11-14 20:45 | 显示全部楼层
汇编不适合计算机新手,现在大学里基本上从c开始,等你掌握C语言,后期用汇编语言,可以加快指令执行速度
回复

使用道具 举报

ID:426661 发表于 2018-11-14 20:50 | 显示全部楼层
用C更好一点
回复

使用道具 举报

ID:421466 发表于 2018-11-14 21:28 | 显示全部楼层
c语言是基础,只有熟练使用后,再往汇编上去发展可能会容易一些,个人看法,如果有不同意见 请指教 。
回复

使用道具 举报

ID:426728 发表于 2018-11-14 22:09 | 显示全部楼层
C比较常用吧
回复

使用道具 举报

ID:426750 发表于 2018-11-14 22:43 | 显示全部楼层
汇编感觉自学很难,新手C上手快
回复

使用道具 举报

ID:426763 发表于 2018-11-14 22:53 | 显示全部楼层
。c语言就不一定。 其实熟练的掌握汇编后,学C语言,不用花多大功夫。
回复

使用道具 举报

ID:426765 发表于 2018-11-14 23:18 | 显示全部楼层
c语言,通用,可移植度高,不同单片机稍改程序就可以使用。
回复

使用道具 举报

ID:394101 发表于 2018-11-15 08:54 | 显示全部楼层
建议是学C好,汇编应用不广,而且学C以后转其他语言也好转
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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