如何轻松学好汇编语言

(整期优先)网络出版时间:2014-07-17
/ 2

如何轻松学好汇编语言

庞新法

HowtoEasilyLearnAssemblyLanguage庞新法PANGXin-fa(陕西省委党校科技教研部,西安710061)(ShaanxiProvincePartySchooloftheCPC,Xi'an710061,China)

摘要院汇编语言指令复杂,规定繁多,导致学生厌学,为了提高汇编语言程序设计的教学效果,本文从英语、C语言语法对比的角度,说明如何轻松学好汇编语言,以提高学习兴趣。

Abstract:Assemblylanguagehascomplexinstructionsandmanyprovisionswhichleadtothewearinessofstudents.Inordertoimprovetheteachingeffectofassemblylanguageprogramming,thisarticleexplainshowtoeasilylearnassemblylanguagefromthecomparativeperspectiveofEnglishandClanguagegrammarinordertoimprovetheinterestoflearning.

关键词院单词;词法规则;语法规则;语法成分;语句Keywords:word;lexicalrule;grammarrule;grammaticalcomponent;statement中图分类号院TP313文献标识码院A文章编号院1006-4311(2014)19-0193-021

绪论作为最接近机器语言的编程语言,汇编语言可以称得上是最接近于计算机操作本质的语言。其直接面向硬件的特性,使得在使用汇编语言编程时,能够清楚感知计算机的运行过程和原理,充分认识应用程序和计算机硬件之间的联系与交互。相对于高级语言来说,汇编语言对编程者思维逻辑的锻炼表现尤为突出,对于形成软、硬兼备的编程知识体系具有举足轻重的作用,而且指令集合简约,指令操作直接。很多硬件设施的嵌入式编程使用的都是汇编语言,因为汇编语言更直接,更有效率。例如现在很多数码产品赖以生存的芯片、主板等,都包含了嵌入式程序,而这些程序中,汇编语言的使用是非常普遍和相当重要的。对于计算机专业语言类课程的学习来说,从汇编语言开始学习更符合循序渐进的学习原理。特别是在计算机技术专业的学习中,汇编语言具有十分重要甚至说不可代替的作用。因学生有英语、C语言学习的基础和习惯,故本文从英语、C语言语法对比的角度,说明如何轻松学好汇编语言,以便更好地由英语学习、C语言学习自然过渡到汇编语言学习。

2汇编语言课程的特点汇编语言是计算机能提供给用户的最快而又最有效的语言,同时能够利用计算机所有硬件特性并能直接控制硬件。所以高级语言简单、易学且开发效率高,而汇编语言复杂、难懂、开发效率低。优点:淤用汇编语言所编程序时空效率高。由于汇编语言本质上就是机器语言,可直接、有效地控制计算机硬件,因而与高级语言相比,容易得到运行速度快、执行代码短、占用内存空间少的高时空效的目标程序。于用汇编语言能设计出高级语言无法实现的程序。正是由于与机器的密切相关性,使得汇编语言能充分利用计算机的硬件特性,编写出与硬件紧密相关而高级语言又无法实现的程序。缺点:淤难学、难理解、难编程、难调试、难维护等。于汇编语言程序可移植性差,它是面向机器的语言,不同的机器CPU不一样,一个CPU一个指令系统,硬件CPU的不兼容导致程序移植困难。

3英语与汇编语言的对比(表1)

4单词的种类

4.1常量(常数)单词淤10进制整形常量。词法规则:以D结束(D可省略),由0-9构成如123D,456。于16进制整形常量。词法规则:以H结束,由0-9,A-F构成如123H,456H。盂8进制整形常量。词法规则:以Q结束,由0-7构成如101Q,456Q。榆2进制整形常量。词法规则:以B结束,由0-1构成如101B,110B。虞字符型常量。词法规则:单引号括起来的字符,其值为其ASCII码如‘1’的值是41H,’AB’的值是4241H,’ABCD’的值是44434241H,字符顺次存放,其值是低位在低地址部分。

4.2名字单词词法规则:以字母或下划线开始,由字母,数字,下划线构成的串。如xyz,flag,名字可以是段名,子程序名,指令的名字,常量名,变量名,寄存器名等。

4.3运算符单词算术运算符:如+,-,*,/。伪指令运算符:如offset,seg,xor。

4.4操作码单词区分不同的操作(运算),含义必须硬记。如ADD(加法),SUB(减法),MUL(乘法),p(除法)。

5语法成份要要表达式语法规则:由常量,运算符,括号,名字构成。如123+456+x,其中最常用的表达式有:淤100:数据100。于[100]:100号单元,100不是数据,是地址,100号单元的内容是数据。盂BX:BX单元。榆[BX]:BX所指向的单元,并非BX单元。虞10[BX]或书写成[10+BX]:BX所指向的单元,下10个单元。愚[SI][BX]或书写成[SI+BX]:BX所指向的单元,下SI个单元。舆10[SI][BX]或书写成10[SI+BX]或书写成[10+SI+BX]:BX所指向的单元,下SI个单元,再下10个单元。

6语句格式自然语言格式是:动词(做什么)宾语(对谁做)状语(怎么做)。汇编语言格式是:动词(做什么)宾语(对谁做),省掉状语(运算结果怎么办,隐含给出)。

语法规则:[名字][:]操作码目的操作数,源操作数;注解。表示做何种操作的代码称为操作码,参加操作的数称为操作数,操作数无非是常量,名字,表达式。存放结果的称为目的操作数,仅参加运算的数称为源操作数。运算后,目变源不变。

语义规则:目的操作数操作上源操作数,结果送到目的操作数(运算结果怎么办,隐含给出)。

如ADDAX,BX表示AX的内容加上BX的内容送AX,(AX)+(BX)送AX。

7汇编语言与C语言的比较渊表2

8结束语计算机由硬件软件两部分构成,汇编语言可直接在硬件层上编程序,高级语言有编译程序,该软件层遮盖了硬件层,使得用户看不到硬件,看到的只是编译程序的语法约定。故学好汇编语言,对于理解计算机内部运行机制及产品开发尤为重要。

参考文献院[1]王成耀.80X86汇编语言程序设计(第2版)[M].北京:人民邮电出版社,2008.[2]张全福.汇编语言程序设计实验教学改革与探索[J].教学研究,2005,25(10).[3]詹林,刘向举.汇编语言程序设计课程教学方法的研究[J].中国科技信息,2005(12).