第十三讲 汇编语言及汇编过程
教学方法: 讲授法
教学时数: 2学时
教学目的:
1、理解源程序、目标代码、编辑、汇编等含义
2、了解汇编过程
3、掌握伪指令的使用
教学重点:
伪指令的使用
教学难点:
汇编过程
教学环节
组织教学:(2分钟)检查学生人数,强调作业要求。
引入新课: §3-7 汇编语言及汇编过程
一、汇编程序功能
源程序 汇编 目标程序
(汇编指令程序) (机器码指令程序)
汇编指令与机器码指令有一一对应的关系。
汇编程序是一种翻译程序,将源程序翻译成目标程序。
二、汇编程序的汇编过程
汇编有两种方法:手工汇编、机器汇编。
1、手工汇编:
第一次汇编:确定地址,翻译成各条机器码,字符标号原样写出;
第二次汇编:标号代真,将字符标号用所计算出的具体地址值或偏移
量代换。
源程序 地址 目标程序
第一次汇编 第二次汇编
ORG 1000H
START:MOV R0,BUFFER-1 1000 A82F A82F
MOV R2,#00H 1002 7A00 7A00
MOV A,@R0 1004 E6 E6
MOV R3,A 1005 FB FB
INC R3 1006 0B 0B
SJMP NEXT 1007 80NEXT 8005
LOOP:INC R0 1009 08 08
CJNE @R0,#44H,NEXT 100A B644NEXT B64401
INC R2 100D 0A 0A
NEXT:DJNZ R3,LOOP 100E DBLOOP DBF9
MOV RESULT,R2 1010 8A2A 8A2A
SJMP $ 1012 80FE 80FE
BUFFER DATA 30H
RESULT DATA 2AH
END
2、机器汇编
两次扫描过程。
第一次扫描:检查语法错误,确定符号名字;
建立使用的全部符号名字表;
每一符号名字后跟一对应值(地址或数)。
第二次扫描:是在第一次扫描基础上,将符号地址转换成真地址(代真);
利用操作码表将助记符转换成相应的目标码。
三、伪指令
伪指令是告诉汇编程序,如何汇编源程序的指令。
伪指令既不控制机器的操作,也不能被汇编成机器代码,故称为伪指令。
1、起始地址伪指令 ORG
ORG addr16
用于规定目标程序段或数据块的起始地址,设置在程序开始处。
2、汇编结束伪指令 END
告诉汇编程序,对源程序的汇编到此结束。一个程序中只出现一次,在末尾。
3、赋值伪指令 EQU
告诉汇编程序,将汇编语句操作数的值赋予本语句的标号。
格式: 标号名称 EQU 数值或汇编符号
“标号名称”在源程序中可以作数值使用,也可以作数据地址、位地址使用。
先定义后使用,放在程序开头。
4、定义字节伪指令 DB
告诉汇编程序从指定的地址单元开始,定义若干字节存储单元并赋初值。
格式: [标号:] DB 字节数据或字节数据表
5、定义字伪指令 DW
从指定地址开始,定义若干个16个位数据,高八位存入低地址;低八位存入高地址。
例、 ORG 1000H
PIOI: DW 7654H,40H、12、‘AB’
6、数据地址赋值伪指令 DATA
将表达式指定的数据地址赋予规定的字符名称
格式: 字符名称 DATA 表达式
注:该指令与EQU 指令相似,只是,可先使用后定义,放于程序开头、结尾均可。
7、定义空间伪指令 DS
从指定地址开始,保留由表达式指定的若干字节空间作为备用空间。
格式: [标号:] DS 表达式
例2、 ORG 1000H
DS 0AH
DB 71H,11H,11H ;从100BH开始存放71H、11H、11H。
注:DB、DW、DS 只能用于程序存储器;而不能用于数据存储器。
8、位地址赋值伪指令 BIT
将位地址赋予规定的字符名称。
格式: 字符名称 BIT 位地址
例3、 X1 BIT P12
相当于 X1 EQU 92H
小结:
1、为什么要对汇编程序进行汇编?
2、机器汇编的过程是怎样的?
3、常用伪指令的功能是什么?
布置作业:题目抄在黑板上。
版书设计
一、汇编程序功能
1、…
二、汇编程序的汇编过程
1、……..
2、……..
三、伪指令
1、主电源(VCC 、VSS)
2、外接晶振
3、…….
4、…….
5、……..
….
小结:
1、……..
2、……
作业: