当前位置:
文档之家› 单片微机原理及应用课件_第4章_汇编语言程序设计
单片微机原理及应用课件_第4章_汇编语言程序设计
汇编结果:(2000H)=74H 汇编结果 (2002H)=00H (2004H)=00H
5.DS:定义存储区 . :定义存储区(Define Store)
从指定的地址单元开始,保留一定数量存储单元。 从指定的地址单元开始,保留一定数量存储单元。 格式如下: 格式如下: [标号:] 标号: 标号 DS 表达式
START: MOV :
各段之间必须用定界符隔开。 各段之间必须用定界符隔开。
返回本节
1、标号段 、 标号是用户给指令语句设定的一个符号, 标号是用户给指令语句设定的一个符号, 在汇编产生目标程序时, 在汇编产生目标程序时,汇编程序将把标号 所指的指令语句目标码首地址值赋给该标号。 所指的指令语句目标码首地址值赋给该标号。 于是, 于是,标号便可作为地址或数据在其它语句 的操作数段中引用。 的操作数段中引用。 标号是以字母开头的 标号是以字母开头的1~8个字母或数字串组 字母开头 个字母或数字串组 注意,不能使用指令助记符 伪指令或 指令助记符、 成,注意,不能使用指令助记符、伪指令或 寄存器名来作标号 标号不能重复定义。 来作标号, 寄存器名来作标号,标号不能重复定义。
8.END:汇编结束 . :
源程序结束指令。 以后所写的指令, 源程序结束指令。在END以后所写的指令, 以后所写的指令 汇编程序都不予处理。 汇编程序都不予处理。一个源程序只能有一 指令, 个END指令,放在程序结尾。 指令 放在程序结尾。
小结: 小结:1、为什么要对汇编程序进行汇编? 为什么要对汇编程序进行汇编? 2、机器汇编的过程是怎样的? 机器汇编的过程是怎样的? 3、常用伪指令的功能各是什么? 常用伪指令的功能各是什么?
汇编语言及汇编过程
汇编程序功能 汇编 源程序 (汇编指令程序) 汇编指令程序) 目标程序 (机器码指令程序) 机器码指令程序)
汇编指令与机器码指令有一一对应的关系。 汇编指令与机器码指令有一一对应的关系。 汇编程序是一种翻译程序,将源程序翻译成目标序。 汇编程序是一种翻译程序,将源程序翻译成目标序。
2.EQU:赋值(或等值指令) . :赋值(或等值指令)
给变量标号赋予一个确定的数值。 给变量标号赋予一个确定的数值。其值在整个程序 中不改变,且可多次使用。 中不改变,且可多次使用。 格式为:标号(字符名称) 格式为:标号(字符名称) 例如, 例如,COUNT EQU 16H ADDR EQU 数或汇编符号 ; COUNT=16H
2、操作码段 、 操作码指出指令操作的性质或控制要求。 操作码指出指令操作的性质或控制要求。该 段可以是指令助记符或伪指令助记符。 段可以是指令助记符或伪指令助记符。 3、操作数段 、 操作数是指令操作码操作的对象, 操作数是指令操作码操作的对象,它是参加 操作的数或是操作数据所在的地址。 操作的数或是操作数据所在的地址。 操作数有三种类型的信息: 操作数有三种类型的信息: 立即数、寄存器和地址。 立即数、寄存器和地址。
其中,表达式一般是数值,即要保留的内存单元数。 其中,表达式一般是数值,即要保留的内存单元数。 例如, 例如, ORG 1000H DS DB 而(1005H )=23H。 。 5 23H
汇编结果:从地址 开始, 个字节的内存单元, 汇编结果 从地址1000H开始,保留 个字节的内存单元, 从地址 开始 保留5个字节的内存单元
为区分数字和字符,凡数字以0~9开头。 开头。 为区分数字和字符,凡数字以 开头
4.1.3 伪指令
1.ORG:汇编起始地址 . : 用来说明程序段或数据存储区的起始地址。 用来说明程序段或数据存储区的起始地址。 格式为: 格式为: ORG 例如程序: 例如程序: START: : 十六位地址 ORG 1000H MOV A,#20H , MOV B,#30H , ┇ 说明程序从1000H开始存放。在一个源程序 开始存放。 说明程序从 开始存放 可以多次使用ORG指令。但不能重叠。 指令。 中,可以多次使用 指令 但不能重叠。
目标程序
第一次汇编 第二次汇编 A82F 7A00 E6 FB 0B 8005 08 B64401 0A DBF9 8A2A 80FE
80NEXT 08 B644NEXT 0A DBLOOP 8A2A 80FE
2、机器பைடு நூலகம்编 、
两次扫描过程。 两次扫描过程。 第一次扫描:检查语法错误,确定符号名字; 第一次扫描:检查语法错误,确定符号名字; 建立使用的全部符号名字表; 建立使用的全部符号名字表; 每一符号名字后跟一对应值( 每一符号名字后跟一对应值(地址或 数)。 第二次扫描:是在第一次扫描基础上, 第二次扫描:是在第一次扫描基础上,将符号地址转 换成地址(代真); 换成地址(代真); 地址 利用操作码表将助记符转换成相应的目 标码。 标码。
第4章 汇编语言程序设计 章
4.1 汇编语言基本概念 4.2 汇编语言程序设计
4.1 汇编语言基本概念
4.1.1 程序设计语言 4.1.2 汇编语言的语句结构 4.1.3 伪指令
返回本章首页
4.1.1 程序设计语言
按照语言的结构及其功能可以分为三种: 按照语言的结构及其功能可以分为三种: 1.机器语言:机器语言是用二进制代码 和1表 .机器语言:机器语言是用二进制代码0和 表 示指令和数据的最原始的程序设计语言。 示指令和数据的最原始的程序设计语言。 2.汇编语言:在汇编语言中,指令用助记符表 .汇编语言:在汇编语言中, 地址、 操作数可用标号、 示 , 地址 、 操作数可用标号 、 符号地址及字 符等形式来描述。 符等形式来描述。 3.高级语言:高级语言是接近于人的自然语言, .高级语言:高级语言是接近于人的自然语言, 面向过程而独立于机器的通用语言。 面向过程而独立于机器的通用语言。
2.汇编语言的语句格式 .
汇编语言源程序是由汇编语句(即指令) 汇编语言源程序是由汇编语句(即指令) 组成的。汇编语言一般由四部分组成。 组成的。汇编语言一般由四部分组成。 其典型的汇编语句格式如下: 其典型的汇编语句格式如下: 标号: 标号: 操作码 操作数 A,30H , ;注释 ;A←(30H) ( )
6.BIT:位定义 . :
把位地址赋给确定的字符名称。 把位地址赋给确定的字符名称。常用于定 义位符号地址。 义位符号地址。 格式如下: 格式如下: 字符名称 例如, 例如, BIT 位地址
AA BIT P1.0 BB BIT P2.0
汇编后,把位地址 分别赋给变量AA 汇编后,把位地址P1.0、 P2.0分别赋给变量 、 分别赋给变量 和BB,在程序中它们就是位地址了。 ,在程序中它们就是位地址了。
汇编结果:(2000H)=14H 汇编结果 (2002H)=41H (2004H)=42H
4.DW:定义字数据 (Define Word) . :
按字的形式把数据存放在存储单元中。 按字的形式把数据存放在存储单元中。其中高字节数 存入低位地址。 存入低位地址。 格式如下: 格式如下: [标号:] 标号: 标号 例如, 例如, DB 字常数表 7423H, 00ABH, 20 (2001H)=23H (2003H)=ABH (2005H)=14H ORG 2000H TAB: DW
源程序
ORG 1000H START: R0, START:MOV R0,2FH R2, MOV R2,#00H A, MOV A,@R0 R3, MOV R3,A INC R3 SJMP NEXT LOOP: LOOP:INC R0 @R0,#44H, CJNE @R0,#44H,NEXT INC R2 NEXT: R3, NEXT:DJNZ R3,LOOP 2AH, MOV 2AH,R2 SJMP $ END 地址 1000 1002 1004 1005 1006 1007 1009 100A 100D 100E 1010 1012 A82F 7A00 E6 FB 0B
汇编程序的汇编过程
汇编有两种方法:手工汇编、机器汇编。 汇编有两种方法:手工汇编、机器汇编。
1、手工汇编: 手工汇编: 第一次汇编:确定地址,翻译成各条机器码,字符标号 第一次汇编:确定地址,翻译成各条机器码, 原样写出; 原样写出; 第二次汇编:标号代真, 第二次汇编:标号代真,将字符标号用所计算出的具体 地址值或偏移量代换。 地址值或偏移量代换。
返回本节
汇编语言源程序: 汇编语言源程序:用汇编语言编写的程序 称为汇编语言源程序,简称源程序。 称为汇编语言源程序,简称源程序。计算机 不能直接识别和执行源程序。 不能直接识别和执行源程序。 汇编(过程):将汇编语言源程序翻译成 汇编(过程):将汇编语言源程序翻译成 ): 机器码目标程序的过程,称为汇编过程, 机器码目标程序的过程,称为汇编过程,或 简称为汇编。 简称为汇编。 汇编程序:它是计算机的系统软件之一, 汇编程序:它是计算机的系统软件之一, 用于将汇编语言源程序翻译成目标程序。 用于将汇编语言源程序翻译成目标程序。
信息表示方法: 信息表示方法 • 二进制(B) 二进制( ) • 十进制(D或无字尾) 十进制( 或无字尾 或无字尾) • ASCII码(‘ ’) 码 • • 如:MOV A,#0A4H • 4、注释段 、 • 为了便于阅读和交流,对程序进行注释。 为了便于阅读和交流,对程序进行注释。 汇编时对注释部分不予理会。 汇编时对注释部分不予理会。 十六进制( ) 十六进制(H) PC现行值($) 现行值( ) 现行值 指令标号等。 指令标号等。
4.1.2 汇编语言的语句结构
1.汇编语言的指令类型 . MCS-51单片机汇编语言 , 包含两类不同 单片机汇编语言, 单片机汇编语言 性质的指令。 性质的指令。 (1)基本指令:即指令系统中的指令。它们都 )基本指令:即指令系统中的指令。 是机器能够执行的指令, 是机器能够执行的指令 , 每一条指令都有对 应的机器码。 应的机器码。 (2)伪指令:汇编时用于控制汇编的指令。它 )伪指令:汇编时用于控制汇编的指令。 们都是机器不执行的指令,无机器码。 们都是机器不执行的指令,无机器码。