汇编语言授课方法
2014-10-08庞新法PANGXinfa
庞新法 PANG Xin-fa
(陕西省委党校科技教研部,西安 710061)
(Science and Technology Department,Shaanxi Province Party School of the CPC,Xi'an 710061,China)
1 绪论
汇编语言是计算机提供给用户的最快而又最有效的语言,时空效率最高,同时能够利用计算机所有硬件特性并能直接控制硬件。汇编语言编程特点是:①时空效率高。②用汇编语言能设计出高级语言无法实现的程序。③汇编语言难学、难理解、难调试难维护等。④可移植性差。
2 二进制
电子数字计算机通过电路实现数学运算。打开机箱,主板上密密麻麻全是线,加电后,该线上要么有电(+5V称为1),要么没电(0V称为0),因此计算机只认识0、1两个字,计算机唯一特点就是速度快、记忆力强。计算机所能认识的数据是0、1组合构成的数据,称为二进制数据,计算机所能认识的语音是0、1组合构成的语音,称为机器语言。数值、文字、声音、图像、图形、视频、动画等在计算机中全用0、1代码表示。
3 进制转换
自然的人喜欢用十进制,机器只认识二进制。必须10译2,2译10。这样人机才可相互交流。①权值:如期末总评成绩,考试与平时权值为7:3,二者重要性不同,考试90分,加权后为63,平时80分,加权后为24,总评成绩87。②以算盘为例,如表1所示。虽然都是5,处的位置不同,权值不同,一个代表5000,一个代表50,合计是5050。③以二进制为例,如表2所示。所以(11010)2=16+8+2=(26)10。④用上述方法,还得有表头。10进制末尾添0乘10、2进制末尾添0乘2、16进制末尾添0乘16等等。325翻译成二进制,如下所示:
(325)10→1=1→10=2→100=4→1000=8… →100000000=256,325-256=69,还差 69,100000000 的第 6位添 1 为 64=26→101000000,69-64=5,还差 5,101000000的第 2位添 1为 4=22→101000100,5-4=1,还差1,101000100的第 0位添 1 为 1=20→(101 000101)2。
表1
表2
4 16进制
16进制,0~9,A~F,16个状态,逢16进一,24=16个组合。用4位的二进制表示1位的16进制。0~9用0000~1001表示,A~F用 1010~1111表示,16译 2,1位变 4位,2译16,4位变1位,16进制是2进制的缩写,自然的人喜欢10进制,机器只认2进制,软件开发人员,喜欢16进制,看见了16进制等于看见了2进制。如(86)16=(1000 0110)2。
5 ASCII
键盘上大约有116个键,为了区分每一个键,必须起名,按键上标有“A”,说明该键的外部名字是A,A是一个图形符号,计算机不认识,在机内必须为该键用2进制起名(内部编码),你的名字是“张伟”,户籍部门内部名字用身份证号。116键,116个名字,27=128,所以一个按键的内部名字用7位2进制代码表示,美国电子学会为A起名(100 0001)2=(41)16=(65)10,该编码称为 ASCII码。只需记住 A=65,a=97,0=48 即可。
6 有符号数的表示
表示就是存贮。数学上的数据如+125,-120,由两部分构成,符号位(2 个状态“+”,“-”,21=2,只需 1 个 2 进制位,“+”用 0,“-”用 1),数值位。
数值位,正数值与表示一致,负数值与表示是二个概念,用补码表示。如瓶子容量是10斤,里面装了3斤水,就说差7斤,值是3,表示是“差7”,在补7斤就10斤。现在是 3:50分,就说“差 10分 4点”,值是 3:50分,表示是“差10分4点”。引入补码的目的是为了减法变加法,这样,加、减、乘、除统一是加法。举例如下:
由此可看出-3用101-3=7表示,-24用102-24=76表示。若为 n 位[x]补码=10n-[x]真值=2n-[x]真值=2n-1-[x]真值+1=全1-[x]真值+1=[x]反+1,负数真值变反+1 是表示。由上述公式可推出[x]真值=2n-[x]补码,表示变反+1 是真值。
7 CPU 8086
计算机内部共有三类单元(房子),一类是CPU芯片中有14个单元(寄存器),较少,为区分每个单元,给单元起名。内存条中有众多单元,只能编号(单元号),外设接口板中有较多单元,为其编号(外设单元号、外设地址、I/O地址、I/O端口)。寄存器,暂存数据,相当于火车站行李寄存处,房间小,离站近,上下火车方便。寄存器少,但在CPU中,存取方便。内存条中单元很多,CPU存取时必须经过数据总线(高速公路),访问遥远的内存,很不方便,编程时要尽量使用寄存器,以提高程序速度。刚开始,只要记住寄存器名字即可,带X的寄存器可拆分成高低两个8位,其余均为16位,不可拆分。DS、ES、SS、CS称为段地址寄存器,专门用于存放段地址。就像有些瓶子专用于装酒,有些瓶子专用于装醋,不可乱用。只有 BX、BP、SI、DI、SP 可以放地址。标志寄存器FLAG:指令ADD AX,BX加的结果记录在AX中,但计算过程没有记录在案,导致程序上下文无关。相当于看病时,有个病厉,记录看病过程,每次找不同的医生,均对病情清楚。
8 内存的组织
内存分段,如100H:200H表示第100段的第200个单元。访问内存的物理地址=100H*24 (16,10H)+200H=1200H。
9 寻址方式
①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个单元。
10 指令系统
指令格式:[名字][:]操作码目的操作数,源操作数;注解。表示做何种操作的代码称为操作码,参加操作的数称为操作数,操作数无非是常量,名字,表达式。存放结果的称为目的操作数,仅参加运算的数称为源操作数。运算后,目变源不变。数学上,2+3,做何操作,+操作,对谁做,2和3。常用操作码功能必须记。
11 汇编语言
字符的组合是单词,共3类单词,常量、名字、运算符。讲清词法规则。有些名字系统已用(称为关键字),用户不能再用,天下名字多的是。单词的组合是表达式(语法成分),表达式的组合是语句。讲清语法规则、语义规则。
12 结语
课程特点在很大程度上影响学生的学习兴趣与学习效果,如何把汇编语言的基础知识以直观形象、寓教于乐、灵活多样的形式展示给学生,促使学生短时间内准确理解。本文就授课方法予以浅析。
[1]谭浩强.C语言程序设计[M].清华大学出版社,2004.
[2]丁爱萍.C语言程序设计实例教程[M].西安电子科技大学出版社,2006.
[3]林小茶.C语言程序设计[M].中国铁道出版社,2005.