第十三讲 汇编语言及汇编过程 教学方法: 讲授法 教学时数: 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、…… 作业: