您的位置: 电子实验室 -> 校园服务(限本市) -> 电类专业考研讨论 -> 单片机已经有C语言了,为啥教材还要主讲汇编

您是本帖的第 5928 个阅读者
 贴子主题:单片机已经有C语言了,为啥教材还要主讲汇编
 铁手无情123 (新兵) 性别:男<br>状态:离线<br>积时:31 分 33 秒
 新兵
 
 头衔:未定义
 Y 币:0
 帖数:1
 金钱:4
 注册:2015-5-10

  发表于 2015-5-10 23:09:15 资料 留言 编辑 引用 评帖 < 收藏 举报 1F >

单片机已经有C语言了,为啥教材还要主讲汇编

为啥要学汇编?

换个问法:学习单片机,用C语言还是汇编好?

再换问法:单片机已经有C语言了,为啥教材还要主讲汇编

网上一些网友的回答:

  ①大一就学了C语言,难道大二或大三学单片机时再重复学C语言,肯定得加一门新语言了。

  ②听说精通汇编可以收入更高,还有就是据说,有些要精确时序或更快速的程序需用到汇编,这时可以C与汇编语言混编。

  ③这要看你想对单片机的学习有多深,一般的话C就够了,但是因为汇编与硬件的联系比较密切,所以得需要深入学习单片机的硬件结构,这也能使你更好的理解单片机的工作原理,而C基本是屏蔽了对硬件的直接操作,所以不利于对硬件的深入了解。

  ④单片机以前只有汇编编程,现在可以用C语言编程了,还教汇编,真有毛病。

  ⑤建议大学教材都用C语言教单片机,更快更简单,……,更多看法就不举例了。

   本人在学校也是搞单片机的,也来发表自己的观点,算一家之言罢,不赞同者请理性讨论。本校主要教51系列单片机,下文中C语言指的是基于51的C51语言。

    第一,我们先看教材,可以发现,越是名牌大学,特别是重点电子类名牌大学,越要求重点讲汇编,应用型本科专科电子类中专,越往下越少讲汇编,而是C语言讲授多,专科中专仅仅介绍汇编指令而已,培训班类教材,特别是淘宝上卖学习板的,则基本就是讲C语言了,甚至汇编指令介绍都省了。教材是按教学大纲编写的,编写教学大纲者,肯定都是国家级的专家,他们的眼界难道不比刚入门,学了几天C语言就嗷嗷叫的人水平高吗。说明啥,越高级越要求汇编,越低级越不必过多的知道汇编。培训班类教材,连大纲都没有人规定,当然编书的人就随便写了,怎样上手快就怎样写吧,只要板子好卖就行。

   第二,请找一找各校单片机考研试题,看看是用汇编呢还是C语言,如果不弄通汇编语言,考研就免谈了,难道研究生导师也不如你聪明,不知道单片机可以用C编程吗,考研试题非考汇编不可? 这对大学生是最现实的问题,如果考研科目中有单片机就一定有汇编题,大专中专生不考研,就不必弄通汇编,知道就行了。如果重点大学不讲汇编,估计想考研的同学要把老师轰下讲台^_^。

   第三,看将来从事的工作,如果是应用型本科专科电子类中专生,毕业后能用C语言编写单片机程序,搞点小小控制器,比如温湿度控制设备,用于大棚蔬菜等环境,或者LED广告屏编程之类,简单学一学汇编,大体知道单片机内部结构,能用C语言编写程序,就算可以了,多数人也不会往高处发展,会C就够了,大不了多会几款单片机,还是用C编写的。如果是重点电子类名牌大学学生,可能要考研,向高处发展,就要深入学习单片机了,以下内容请这些人看,只想学会单片机的人、非电子类名牌大学的学生也不用往下看第四第五条了。

   第四,对芯片应用高端人才而言,学习单片机只是为了打个基础,通过汇编彻底理解各类智能芯片,比如单片机、DSP、ARM、台式电脑内核、各类不公开的手机芯片等的结构,只因为单片机是最简单的智能芯片,资料又多,价格也低,作为入门是很好的起步,作为入门,学好单片机不是目的,而是作为进入高端的起点。真正使用的汇编语言,是公司要你编程的那种芯片的汇编语言,不是学校所学的单片机汇编语言。

   第五,下面我们设想几个应用场景,你认为单靠C语言能搞定吗?

1、国际上有集成电路公司刚出一款新芯片,你所在公司认为有钱途,想做二次开发后再推向市场,有意为它配备uc/os-ii嵌入式操作系统,该OS系统顶层很成熟了也是开源系统,但它和芯片硬件接口部分,要用该芯片的汇编指令编程链接起来,即需要做底层开发。

2、某人进入了一个有芯片硬件开发能力的手机制造公司,公司IC集成电路设计部,即微电子技术部,开发控制芯片即将完成,比其他公司的芯片成本更低,手机将更有竞争力,他们能够提供一套汇编指令给你,你所在芯片应用开发部,要把安卓系统移植到它上面,安卓系统移植上层代码是谷歌提供的,但要用本公司芯片的汇编指令,把安卓和芯片结合,也是要做底层开发。

3、你所在公司的竞争对手推出了一款新的控制设备,比你公司的更有竞争力,你们在市场买来了他们的设备,找到其控制芯片,也通过一些办法拷出了其程序,但是都是二进制代码,只能反汇编成汇编语言,现在要求通过两条路径,破解对手公司的技术,一是通过其功能演示,逆向开发程序,二是阅读其汇编代码,知道其大体编程思路,以便更好的逆向开发。由于反汇编最多就能反编到汇编级别,不可能反编到C语言,需要汇编高手来分析其代码,以便更好的超越对手。

    就以上述三个场景而言,最贴近硬件的那层,都要真正的汇编高手,这样的公司不会是小公司,也不会设计大棚蔬菜温湿度控制器之类的设备的,或者去设计LED广告屏之类,他们是微控制器领域的高级人才,他们的工资是不是该比搞一般单片机设计的人高很多才合理呢。

    即使是名牌大学,也只能把极少数人培养成汇编高手,但是如果教材以C语言为主,则把可能成为高级人才的人浪费成低级人才,所以不能因为多数人不能成为高级人才,就要求教材弄成低水平,因为高级人才稀少珍贵,各国各大公司都在争夺和培养,所以我们要把教材弄的有深度,尽可能的把有潜力的人培养成高级人才。应用型本科专科电子类中专等,基本没有希望出高技术人才,就讲C语言为主吧。现在能理解,为啥越是重点电子类名牌大学,越要求重点讲汇编了。

注1:设计大棚蔬菜温湿度控制器之类设备,或者设计LED广告屏之类,到处都有流传的代码,可以借鉴,修改来适合你的电路就行了,技术含量低,一般用C语言就够了,用不着汇编语言的,如用51单片机做作品,真用汇编是很不划算的,是不是工资应该比较低呢,其实本人也就这个水平,或仅仅稍高一点吧,因为还比较懂点汇编,但与上述专用汇编的高手相比,真是只有仰望的份儿啊。

注2:设计芯片电路的微电子设计,不属于本文讨论的汇编编程范围,不再展开讨论了。

注3:我们物理与电子学院,我们的学生出汇编高手的希望也不太大,至少比重点电子类名牌大学希望小,成为各大公司争夺目标的希望小,能基本学好汇编之后,转入C语言,做点趣味作品,能找一份技术活,就算可以了,所以至于想学好汇编或学好C语言,就由自己定位吧。

注4:本校在全国几百所本科高校中,也算排名在中上的学校吧,所以重点讲汇编语言了,如果实在感到不满,可以考虑转入一个应用型本科院校,或者专科学校,那里主讲C语言的。事实上,专科学校用C语言讲单片机,不是为了会用单片机,是为了让学生建立智能设备的内部运转方式的概念,专科或中专的主要目的是学习PLC,因为PLC的内部就是一款单片机(肯定比51强大的单片机),学一学单片机有利于理解PLC的结构,所以对单片机本身的结构理解要求不高的。

注5:本校教材讲汇编为主,至于你本人认为那种方式更快学会单片机,可以因人而异,可以先学汇编转入C语言,因为已学过标准C语言,用汇编理解单片机后转入C51是很简单的,或者先用C语言做几个小作品提起兴趣,再来猛攻汇编,都是可选方案,没有对错之分,只是达到目的的路径不同而已。






电子实验室欢迎您!

[贴间信息] 努力学习,天天进步:

 每页10条,共1页,合计1条记录
9  1  :
转到  





Powered By:YxBBs V3.1.0 Processed in:3.921875s,12 queries.
电子开放实验室