学单片机要学汇编语言吗

2010年07月06日 16:10    发布者:江海
本人已有一定的C语言基础,在学习单片机,请问是否要学汇编语言,现在很多资料是要涉及到汇编。。

网友评论

f.luo 2010年07月07日
至少单片机的那些汇编指令要能看懂吧。
当到了一个档次后,你就会发现你需要汇编了。
dzcn 2010年07月11日
觉得还是要懂点汇编
guwn0510 2010年07月14日
还是懂点好
qaz222 2010年07月15日
能懂当然好 不会也没太大关系 专门看C资料就是
minghui2009 2010年07月17日
大概了解就可以了,主要编程可用C
feiante 2010年07月18日
我觉得还是要学,现在我正准备学习。
Rjaen 2010年07月19日
汇编大概了解下就行,精通C语言吧。
chunyang 2010年07月21日
可以不用学,真正掌握了嵌入式应用系统的软硬件设计后,基本上可以无师自通。
icqw1983 2010年07月22日
一定要学!对了解整个芯片结构有好处!
yangken 2010年07月23日
先大概有个基础,看得懂指令即可,等到做项目的时候,需要用到什么再深入了解
chunyang 2010年07月23日
汇编和硬件具有直接的对应性,主张一定要学汇编的看重的是通过学习汇编可以对硬件有更深层次的理解,而搞应用系统设计,没有充分的电子学知识及经验是难以胜任的,从这一点讲似乎主张学汇编的人没错,但实际上这是本末倒置的。硬件不应该主要通过“汇编式思维”来理解,硬件也不都是时序逻辑或组合逻辑,模拟技术才是真正的基础,有了足够的电子学基础外加一点软件工程思想,汇编根本不用学,基本上就是熟悉一下指令的意义就能写出不错的代码,同样的单片机也不用学,当成一个“黑箱电路”即可,剩下的一切都是水到渠成。
当然,我说的这一条路是相对费时费力的,用武侠概念来说就是修内力、练基础,而现在的主流嵌入式系统教学都是主张速成的,很多嵌入式工程师连初中程度的欧姆定律都不会用,求的是秘籍和招式,然后依葫芦画瓢,这时通过学汇编来加深对硬件的理解当然就是很正常的结果了,从这个层次上讲,我也只能持类似的主张,但对于初学者则应该将问题讲透,然后自己去做出选择。
不是谁都有机缘和资质学“独孤九剑”的,跟我学我也不教,还是要从“扎马步”开始。
zh8855o 2010年07月24日
不用。可用直接用C
zh8855o 2010年07月24日
12楼说的需要 很长时间了,在这个讲究时间与效率的时代,这个思路很笨啊
pigdragon 2010年07月25日
建议先用别人搭好的框架来干活了,真的到用到的时候再查一下相关资料就可以了,首先把C在嵌入式系统中的应用和普通pc上编程的差别搞明白就可以了。

有时间还是了解一下,再51这种资源比较差的单片机中把c编译出的汇编看一下,对了解c语言不同语句转换成汇编后的效率有不少帮助
xyj 2010年07月25日
最好还是懂点。
chunyang 2010年07月25日
国人严重缺乏创新能力就是因为太“聪明”了,都说“浮躁”,自己下手就抄“捷径”,结局从一开始就注定了。
ylose 2010年07月28日
最好学习。
hjl2832 2010年08月06日
如果想真正搞懂内核、寄存器操作等,从汇编入手编程序,能更好的理解
minghui2009 2010年08月06日
大概的了解是必要的,编程主要还是C51
jian1989 2010年08月06日
用C比较方便
dishi 2010年08月07日
学习学习,主要是赚积分,下载
today424 2010年08月09日
语言都是相通的,你能看懂汇编的美酒可以用C语言编出来的!
xyj 2010年08月10日
语言都是相通的,你能看懂汇编的美酒可以用C语言编出来的!
today424 发表于 2010-8-9 14:36 http://www.eechina.com/images/common/back.gif

这个有点牵强吧。。毕竟层次还不一样。。
陈小东 2010年08月11日
觉得还是要懂点汇编
yubinwu 2010年08月11日
了解一些是必要的,学则未必。
因为汇编语言种类太多。学好汇编的目的,应该是为了写C代码时执行效率以及了解内核特点等
jatin 2010年08月11日
学了汇编理解会更透彻,某些情况必须汇编写
jj222777 2010年08月15日
水到渠成吧,当你需要的时候你自然知道该怎么做
ant_aoe 2010年08月19日
学习汇编有助于理解单片机原理,加深理解硬件,可以编出高水平的软件
huangmingjun 2010年08月19日
主要是学好C,然后去实践罗,碰到问题再回过头来撒
x_w_long 2010年08月20日
呵呵,初期可以不学,后期需要了就学~
superable 2010年08月21日
应该不用学吧
南极翁 2010年08月24日
汇编语言是不可缺少的。
zhuyong09 2010年08月26日
如果想要做稳定有效率的系统,应该很好的掌握汇编语言,只有掌握了单片机工作的原理与工作方式,才能很好的把握用C语言写的程序。
陈小东 2010年08月28日
非常感谢
陈小东 2010年08月28日
非常感谢
毛毛猫 2010年08月28日
汇编不是必不可少的,但有时间又有有条件的话,最好还是学一些,懂一些底层的东西思维境界是不一样的。
无怨无悔yyl 2010年08月28日
有必要的,这样才能更深入
dianxin 2010年08月28日
先大概有个基础,看得懂指令即可,
lelee007 2010年08月29日
其实51的汇编也没多难,不像DSP的汇编

汇编主要分两部分,机器指令和伪指令,虽然各种机器的汇编不尽相同,但是这两部分都明白道理后,看起来其实并不困难,但是汇编要深入的话,就要熟悉CPU架构了,不同的CPU,要深入进去了,汇编里边很多细节还是有很大差别的,比如51和ARM,51里边的内存操作其实都很简单,都是线性的,但是ARM里边的内存操作就涉及到很多东西,跳转有几种不同情况,还有分散加载,这些东西不光要对指令熟悉,还要明白哈佛结构的原理,还有一些软件方面的东西,DSP里边的增强性哈佛结构比这些更复杂,不光是明白指令的意义就能写出好代码的,而且DSP里边还有些专门针对一些特殊运算的指令,如果不明白那些运算的原理,就算明白指令的意义,你也不一定能写得出代码来
a250698884 2010年08月31日
学习汇编还是挺重要的。
missing_beauty 2010年09月01日
个人感觉,如果是为了一些简单的使用,可以不必学汇编!
但若想深层次的学习单片机,那最好掌握一定的汇编知识了!
wuyan 2010年09月16日
编程序直接用C好了,汇编还是要了解了解的好,可不做重点学习
zhiyonghehqu 2010年09月16日
好像没那么夸张!!
有了学校的汇编基础,我看就足够了!!
zhiyonghehqu 2010年09月16日
C 才是最要的!!
仰望天空 2010年09月18日
需要吧,当时我学单片机的时候没把汇编语言学好,结果就是很吃亏的~~~
tekguy 2010年09月18日
这是个经典的问题了,我认为如果要达到一个较高的开发水平,还是要懂得一些汇编的。
wenjin0386 2010年09月19日
回复12楼chunyang:
同意12楼的观点。以后嵌入式的编程也是需要汇编做底层驱动设计
zhsllove 2010年09月19日
汇编的高效和C的易编程,各有好处,两个都懂,那么设计的时候,你就可以择优了。毕竟不管汇编和C,要入门还是很容易的,大概一个月,你就可以看大懂部分程序了,如果要深究,就要费些时间了。
liyucai 2010年09月21日
懂汇编显然比不懂好,便于理解其工作原理。但初学者如果会C语言,也可以直接用C来编程,这样入门会快些。
tyw 2010年09月21日
做民用消费类产品,非学不可,你要节省每一个bit内存来提升产品的信价比.
liliang278 2010年09月21日
bigxim 2010年09月21日
最好还是懂点。
ahippo 2010年09月21日
如果有时间就学点吧,单片机汇编的最简单的汇编了。学会了对理解MCU、ARM工作原理有帮助。
linuser 2010年09月24日
了解汇编,精通C.
dy031 2010年11月08日
我个人认为要学习,应为学汇编语言,会帮助你更好的理解处理器的结构和原理,而且能写出高质量的C代码
xxh1987 2010年11月13日
最好学一学,多学点知识没有什么坏处。
health 2010年11月13日
至少会一种CPU的汇编语言,
对于其它类型CPU能看懂即可。
左左 2010年11月13日
建议学习下比较好  我学完了单片机  现在正在学汇编  下学期开始嵌入式     现在大学里也没什么事  多学点总是好的  加油了  顺便给你推荐本书   挺适合初学者的   王爽的《汇编语言》……
thund 2010年11月14日
当然,如果再了解机器语言更好
guantz 2010年11月14日
刚刚入门的时候学C吧,这样会比较容易入门,也比较容易掌握,如果你学到了一定的程度,想深究的话,还是需要汇编的。这样能够很好的巩固你所学的,也加深了你的理解
斑头雁 2010年11月15日
要学
henry4209 2010年11月15日
C语言是趋势
wyseda 2010年11月30日
只用学C
terrysun 2010年12月06日
看想做到什么程度!
bigxim 2010年12月06日
最好学下
macmanaman 2010年12月06日
还是要学点
icegoly 2010年12月10日
我觉得  要学
zhangjunye 2010年12月10日
我觉得学单片机要做实验,学不学汇编要看你试验中遇到遇不到汇编,用到多少汇编,现在回头想想学c,学汇编,学verilog都是这样,把语言书当做字典来查,而不是教科书来学,这是我的经验,不过不是适合所有人,适合一部分人。
voica2008 2010年12月13日
能学最好先学,它是基础
wave 2010年12月14日
建议,先入门,再深入。
开始不必学汇编语言,需要再学。
不要刚开始学很多东西,然后就把自己吓倒
esther 2011年01月04日
需要学习汇编语言
lzj500 2011年01月05日
还是学一下汇编好一些
picese_zhu 2011年01月06日
呵呵,看来是仁者见仁阿
delpott 2011年01月07日
其实要不了多少汇编的知识
没必要单独来学习,可以在学习单片机的过程中查落补缺吧
yulitingfeng 2011年01月07日
我个人觉的非常有必要。。。
wbsh 2011年01月07日
:)
gf0710020216 2011年01月07日
先不用看,看C,等你学深需要时再学~~
hustych 2011年01月09日
开始不要学,会让你觉得很枯燥,用c就行了。等你用到C+汇编的混合式编程,或者开始进行c的代码优化的时候,自然就会去学了。汇编不用太刻意,除非你们公司坚持用一个固定的单片机系列,不然学了也不会有太大的作用。不做优化,汇编基本没什么用,而汇编语言的最优结构和CPU的结构有很大关系。
lxhnet678 2011年01月18日
学习先从汇编学吧,肯定对单片机编程有用的
隐形的猎人 2011年01月20日
汇编语言比较接近单片机的底层,如果你用汇编语言来编程可以提高你对单片机结构的了解,当然咯,汇编语言在编程过程中效率很低
wufeilai 2011年01月21日
觉得还是要懂点汇编
william_linchen 2011年01月21日
学C学深入点,不过学汇编的话也可以,建议看些视频更快掌握一些汇编的指令,很容易上手的。
ilikerome 2011年01月22日
深入到一定程度才 需要,初期不要学,浪费时间
14253 2011年01月23日
还是很有用的,我就是汇编比C用的熟,C与汇编可以混合编程优势互补。
forest103459 2011年01月28日
用的时候再学吧,不要学了一大堆没用上
renfengqiu 2011年01月28日
一定要学习汇编语言,有些程序有汇编比较准备!
afeibfp 2011年01月29日
学习一门吧,对理解单片机很有好处的。
chl2010 2011年01月29日
学单片机要学得东西很多!有时间有精力有能力最好是要去学啦。出来工作之前都是尽可能学多一点理论知识,也许在以后工作中不会用到这些知识,但学习单片机汇编语言对你更好的了解掌握单片机有莫大的帮助······
shuyuxu 2011年01月29日
你好!我一名教师。针对你的情况,你可以先用C语言来学习单片机。入门后,你最好还是好好学学汇编,再把做过的实验用汇编实现一下。至少要达到能看的懂汇编语言的简单程序。
lupinxj 2011年01月31日
我从1983年开始学习汇编语言,第一只CPU是Z80的单片机,后来汇编语言又应用在8088系列和8051系列以及8096系列上。
我的感想是:只有你办不到,只有是你不会,不是汇编语言不行!我的同行用汇编语言写20K条程序,速度比C快的多,程序空间小。
C在执行精确度上还是不行。要想成功就必须学习汇编语言,千万别怕困难!
hszx 2011年02月04日
:call:
langzi920 2011年02月12日
不打算用一种处理器的话,就别
wongfu72 2011年02月15日
大部份资料好象都是汇编的,学点好了,反正不比c难学
ljc424 2011年02月16日
路过
linfulin 2011年02月17日
汇编还是要的 速成可以不要  学不学都在你自己。 同样的平台同样的应用开发,有人开发的产品执行效率高,有人开发的产品执行效率低。
ywwork2011 2011年02月17日
多懂点总是没坏处的,嘻嘻!
zlp 2011年02月18日
:victory:
飞雪 2011年02月18日
要学习编程不需要,要学好单片机编程就需要了
sjg 2011年02月20日
要懂汇编语言
frog007 2011年02月20日
不用太多的
王兴梅 2011年02月21日
学点比较好!
liuhs 2011年02月22日
学单片机要学汇编语言, 有較多单片机不兼容C 語言.
clamness 2011年02月22日
要学的
chenshuhuai 2011年02月22日
应该要懂一点的,如果要上层次的话,但是如果要做嵌入式的话应该不学也没关系
sharkyxia 2011年02月22日
这个可以有
yuejunwei1989 2011年02月22日
多学点东西没坏处。
haradona2006 2011年02月23日
最好还是懂一些最基本的汇编,对你以后做单片机的编程还是有好处的
rieman 2011年02月24日
如果不是产量在年10K以上,是完全可以不用汇编的。如果是初学,建议:千万别学!先把单片机玩起来,才会有兴趣。兴趣是最好的老师,到了做大批量产品的层次,有了方案解决能力后,学习汇编绝非难事。千万别一开始被汇编搞的回头土脸,丧失了兴趣。总结:汇编很重要,单绝非必需。精通C才是必须。
zhenyu 2011年02月24日
初期可以先不学,用好C就可以,但随着深入就会发现有些时候需要了解编译的结果究竟是什么样的,这时需要你能读懂汇编,哪怕是一边查汇编指令表一边读。
zlb1982 2011年02月26日
进来看看说些什么!
zry369 2011年02月26日
我是一个老工程师,汇编还是要的,尤其是编写中断程序要求简炼,用汇编最好。
zero_to 2011年02月26日
我也矛盾~
chenchun11 2011年02月26日
实际应用时用的不是很多,但在参考别人程序的时候还是很必要的,建议花些时间熟悉指令,能看懂相关程序以提取思路。
pzhai001 2011年03月01日
傻瓜单反照相机基本上不用你费力去考虑光圈、速度(省去了测光表等等)拍出的照片也相当不错,还节省了时间,但是仍有人玩那些需要测光、人为设定速度的照相机;话又说回来,即便在傻瓜照相机中也具有很多专业模式供你选择,就看你爱用不爱用了:当那些全自动模式拍出的照片不理想时,专业模式可能是唯一能达到你拍摄目的的选择。在实时处理领域中,汇编的优势是C望尘莫及的,但是在编程、调试的速度上,C是遥遥领先。所以倘若你既能熟练地掌握C,又能玩汇编,你就如虎添翼了。再说一句:若是玩8位机,汇编的优势似乎更大:因为不论是51还是PIC、以及AVR.......各种现成的子程序(控制程序、数值运算程序等等)比比皆是,调用起来易如反掌,你所要做的就是考虑具体的处理过程和实现其功能的电路,使用什么样的语言编程序倒不是最关键的问题。
xiaoyuan269 2011年03月01日
你是不是有玩过剑网的网游? 回复12楼chunyang:
hszx 2011年03月01日
:dizzy:
zx3113847 2011年03月02日
必须顶上,谢谢斑竹啊
zhangjihang 2011年03月03日
汇编帮助理解单片机内部结构,初学者建议从C语言开始,之后再学汇编,将会很容易!
LI163169 2011年03月05日
语言其实不是问题,先用C理清单片机思路,汇编小菜一碟
sjg 2011年03月06日
还是要学点的
t0199939 2011年03月13日
是的。

1. 因为汇编语言是直接与硬件相联系的,不学汇编,你对单片机的硬件的了解将不全面。
2. 尽管现在用C写程序,可以编译成汇编然后‘灌进’单片机去执行。但编译的程序很难达到最简,所以并不适合多数单片机应用。
3.  当想要单片机有最快速的响应(如,中断响应),必须用汇编写。

总之,花力气学汇编是必须的
t0199939 2011年03月13日
对于12楼的观点,评论如下

1. 模拟电路和一般的电子学基础,是对广义的芯片及其应用来说的。但模拟电路基础对深刻理解单片机,MCU,DSP等用处不大,因为这些都是数字电路。
2. 学单片机,多想想为什么一堆数字门,触发器,内存/外部存储器等‘死东西’有了程序就能动起来,将有助于学习。
3. 实际上,汇编程序与机器码是一一对应的。而机器码对应的就是硬件(触发器和存储器)。所以说,要想学好单片机,必须学好和理解汇编。
shalione 2011年03月21日
先用C后学汇编!
leefy 2011年03月22日
一定要懂得,在一些空间要求很紧或者时间限制很严的程序里,汇编更适合。另外,对熟悉芯片架构有帮助。
lilxc 2011年03月24日
涉及到程序优化,破解等时候还是需要汇编
孤独小行星 2011年03月26日
还是懂点好!
lence.at89s51 2011年04月16日
恩恩、、 我觉得很是要好好学下  以后一定会涉及到得……  c51编程虽然很绕 但我觉得还是很值得学下
zzm天龙 2011年04月16日
学一下吧,以后会用到的!
suwxdsp@163.com 2011年04月17日
汇编还是有用的,毕竟是基础来的,好好学不会错的....
klyzh2003 2011年04月20日
懂一点汇编对于学习C语言很有益的!特别是搞底层开发的!
lbz842 2011年04月20日
能学汇编是最好,有时候C是写不出来的
hj45103 2011年04月22日
我没学的说
sjg 2011年04月28日
:)
chenyz1214 2011年04月28日
需要学习的,哈哈。
haihyl 2011年04月28日
不一定,懂汇编的话更易理解支配单片机内部资源
runner 2011年04月28日
学习汇编语言,主要是能深入理解CPU的架构,CPU的工作流程,中断、定时器、看门狗等,起步的时候,建议深入学习,学会单片机,以后转其他CPU就容易。这样思路更清楚。
uttjstxz 2011年05月01日
不懂
lbz842 2011年05月01日
最好能学,有些东西不是C能搞定的。学会江编才真正会单片机
PECKER2010 2011年05月03日
能懂汇编当然好些,我一同事搞LCD屏低层驱动用C老出问题,我用汇编把问题解决了。
wangyg1979 2011年05月03日
目前基本所有的单片机的开发环境都是C语言的,对于基本的控制系统,c语言和汇编都可以。但是,能够熟练应用c,已经可以做大部分的事情了,汇编只有在特殊的情况下需要,比如要控制code size
lengyuye520 2011年05月10日
当然要学汇编了,因为你在编程时会发现,有很多地方要用到堆栈指针和数据指针,你如果没有汇编做基础,是很难前进的。
lihaiair 2011年05月10日
学了汇编才能了解单片机的结构和数据如何在单片机内部的工作原理
春日朝阳 2011年05月11日
重点学C,不过会变也要学好的
cqs8031 2011年05月11日
汇编语言好学,C语言好用。
建议先学点汇编语言,编几个小程序。再试试C语言
hhhmole 2011年05月12日
汇编语言你如果弄懂了是很好玩的
xinzichen84 2011年11月12日
先弄懂C吧!最后还是需要学习的
RESET 2011年11月30日
大概的了解是必要的,编程主要还是C51低级产品汇编还是好些
zrs372100 2011年11月30日
这问题是要看你的具体情况了
就象开车的有必要把修车的技术全学完吗?
修车的就一定得要去考个驾照?
shallluo 2012年05月19日
学单片机肯定要学汇编啊
Danvaw 2012年05月25日
还是要看的,不然你会后悔的
ArthurGXH 2012年06月01日
如果你想成为高手,那么就好好学一下。汇编用得多了,单片机也就理解了,C语言的指针也是小儿科了。 再去用别的单片机、ARM等,上手都不会太难。
1612415552 2012年08月10日
如果想要把单片机学到一定水平,汇编是要学的。汇编有利于掌握单片机的硬件结构。
g_hengdong 2012年08月14日
如果是搞一些书本上应用和仪表就没有必要了,C语言好,网上可下载,改改就好,但如果是自动和半自动机哪汇编就方便简洁的得
xingwoo 2012年08月20日
其实汇编和C语言差不多,既然懂得C那么汇编应该不是问题,C语言只是在程序量大时体现出优越的可读性。但是在功能和ROM比较小的时候,汇编就很重要了
daizhi1970 2012年08月23日
O(∩_∩)O谢谢
daizhi1970 2012年08月24日
学习还是有好处的
机械电子 2015年08月14日
有空的时候看看汇编,用的还是C多
bisiwuyi 2015年08月25日
神马问题???
zhaofunlin 2022年09月14日
还是要懂点哦