文雪巍
摘 要:汇编语言是高校计算机、电子信息工程等专业的一门核心基础课。然而,在实际的教学中,老师没有让学生认识到汇编的重要性,导致了在出去工作之后的力不从心。为了让更多的计算机学习者意识汇编语言的重要性,抛砖引玉,阐发对汇编语言的理解,希望能够让更多的计算机技术的学习者对汇编语言的作用有一个正确的认识。
关键词:重要性;汇编语言;程序;教学
中图分类号:G640 文献标志码:A 文章编号:1673-291X(2014)19-0275-02
引言
汇编语言是最接近于机器语言的编程语言。如果说机器语言是计算机操作的本质,那么汇编语言就是最最接近本质的语言。汇编语言操作直接面向硬件,所以,我们在使用汇编语言的时候,能够感知计算机的运行过程和原理,从而能够对计算机硬件和应用程序之间的联系和交互形成一个清晰的认识。这也是最能够锻炼编程者编程思维逻辑的,只有这样,学习者才能形成一个软、硬兼备的编程知识体系,这是任何高级语言都无法给予的!相对于繁复的高级语言,汇编语言指令集合更简约,指令操作更直接,从汇编开始学习更符合循序渐进的学习原理。所以,对于计算机技术初学者或者自学者,汇编语言重要性无可替代。
一、汇编语言的特点
汇编语言(Assembly Language)是面向机器的程序设计语言。汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。
在汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。因此汇编语言亦称为符号语言。
汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。
二、汇编语言的重要性
(一)汇编语言是学习高级语言的基础
从应用层面上来讲,我们不得不承认高级语言在软件开发市场上的重要地位。虽然这种现象很普遍,但是也对计算机语言初学者与教育者带来了一定的负面影响,造成了他们对高级语言学习的盲目推崇。在高校的计算机教学中,要求学生必须学习C语言,java以及C++等高级语言,虽然出发点是好的,但是由于学生的计算机基础普遍不高,导致课程结束后,学生甚至都不具备编写最简单程序的能力。这是值得我们反思的现象。
一般而言,人们都认为学习计算机最基础的是C语言,这种观念是错误的,真正的基础语言是汇编语言。作为一种基础语言,只有学好汇编语言,才能更好地理解C语言等高级语言。汇编语言与高级语言在对内存读取的操作上原理不一样,前者的操作简单地说是内存地址而进行的,而C语言的操作需要学会指针的概念。指针是抽象的专业性概念,能否学好C语言最关键的是如何建立这一概念与实际的内存两者之间的思维映射,这一点恰好就是汇编语言教学过程的重点。除此之外,通过汇编语言,我们也能把高级语言中的常用概念及基本操作形成特定的映像,而深入地剖析这些映像,恰好是我们学好C语言的基础。
由上可知,学习计算机语言,我们应该脚踏实地地从最基本的汇编语言开始,通过循序渐进的学习,更熟练地掌握那些面向对象的高级计算机语言。
(二)汇编语言是重要的应用技术
由于就业市场的错误导向,许多学习者放弃汇编语言等基础语言的学习,从学习初始就专攻高级计算机语言,以图谋取一份高薪酬的工作,这个出发点虽然无可厚非,但是这种好高骛远的学习方法确却是不明智的。
第一,任何一个学习过程都必须遵守循序渐进的原则,我们的知识结构是一个复杂的结构,是由众多单一的课程有机组成,如前文所述,如何挣取更多的报酬不能成为学习汇编语言的唯一目的。编程人员更应该注重通过对汇编语言的学习来完善自己的知识结构。
第二,计算机汇编语言同样是一项主流的应用技术。对于初学者来说,计算机语言的应用舞台不仅仅是形形色色的软件,很多硬件设施也包含了大量的嵌入式语言程序,如主板、电脑芯片等,这些程序的计算机语言就是高效、直接的汇编语言,由此可见,汇编语言在计算机领域仍扮演者非常重要的角色。
(三)汇编语言帮助我们更好的理解整个计算机系统
一般而言,汇编语言的应用的确实不如高级语言广泛,但对于计算机语言学习者来说,它的重要性是非常明显的。机器指令是人们利用机器逻辑功能的前提,也是各种程序能实现功能的必需条件。软件与硬件系统功能的实现都以机器的逻辑功能为基础。汇编语言可以对机器指令进行更加直接的描述。掌握汇编语言就能理解机器指令,理解机器指令就能掌握逻辑功能,从而理解软件系统与硬件系统的工作原理,实现软件系统与硬件系统的功能,为学习计算机语言打下牢固的理论基础与实践基础。
三、汇编语言的应用
1.破解密码软件的核心部分,还有杀毒软件的扫描部分,它们都要求有很高的执行速度,要用到汇编语言才行。
2.unix操作系统的启动部分,这些部分与硬件密切联系,而汇编语言是直接对硬件操作的,所以用汇编语言是最能胜任的。
3.据有关资料统计,用汇编语言编写的程序通常要比C语言程序的执行速度快10倍以上。有些游戏程序的部分一秒钟需要调用几千次,如果用其他语言来编写的话,可能你在玩游戏的时候,时间都花在了等待上。endprint
4.用汇编语言来编写病毒最好不过了,那效率是非常快的,如果没有汇编语言,世界上的黑客要少掉一半。
5.只要高级语言能完成的工作,汇编语言都能完成,而且汇编语言能完成的工作有的高级语言就不能完成,所以汇编语言仍然有举足轻重的作用。
6.现在用纯汇编来编写程序的几乎没有了,而是通过在高级语言里插入汇编程序,所以汇编一般用来搞嵌入式开发。
结束语
总之,汇编语言在计算机语言发展过程中扮演了不可替代的角色。对于教师,要采用正确的教学方法,激发学生的学习兴趣;对于学习者,要正确认识汇编语言的重要性;对于编程人员,如果想在计算机编程之路走得更远,必须从汇编语言开始,才能完整完善的建立计算机编程知识体系。
参考文献:
[1] 宋胜女.浅谈汇编语言教学[J].信息化教学,2011,(7):84.
[2] 朱定华.微机原理、汇编与接口技术(第2版)[M].北京:清华大学出版社,2010.
[3] 李黎.《汇编语言程序设计》课程教学改革探索[J].产业与科技论坛,2013,(12):168-169.
[4] 陈燕俐,许建.“汇编语言程序设计”课程教学改革探索[J].中国电力教育,2012,(11):55-56.
[5] 彭虎,周佩玲,傅忠谦.微机原理与接口技术[M].北京:电子工业出版社,2011.
Talk About the Importance of Applied Undergraduate Colleges Assembly Language Learning
WEN Xue-wei
(Department of Finance and Economics Information Engineering of Heilongjiang University of Finance and Economics,Harbin 150025,China)
Abstract:Assembly language is a core foundation courses in colleges and universities computer,electronic information engineering professional.However,in the actual teaching,the teacher not to let students realize the importance of compilation,led to inadequate when go out to work after.In order to let more computer learner awareness of the importance,the assembly language to start this article,published a compilation of language understanding,hope to be able to let more computer technology learners to learn assembly language functions have a correct understanding.
Key words:importance;assembly language;program;teaching
[责任编辑 陈 鹤]endprint