第4章单片机汇编语言程序设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言的构成
4.1.2 汇编语言格式 MCS-51单片机的汇编语言格式如下 单片机的汇编语言格式如下: 单片机的汇编语言格式如下 [标号 操作码助记符 [第一操作数 第二操作数 ,第三 标号:] 第一操作数][, 标号 第一操作数 第二操作数][, 操作数] 注释] 操作数 [; 注释 ( Label ) ( OP code ) (Operand ) (Comment ) 1、标号:表示指令位置的符号地址, 1、标号:表示指令位置的符号地址,以英文字母开始的 个字母或数字组成的字符串, 结尾。 由1~6个字母或数字组成的字符串,并以“:”结尾。 个字母或数字组成的字符串 并以“ 2、操作码:操作码助记符是表示指令操作功能的英文字 、操作码: 母。 3、操作数:用于给指令的操作提供数据或地址。 、操作数:用于给指令的操作提供数据或地址。 4、注释:注释不属于语句的功能部分,只是对每条语句 、注释:注释不属于语句的功能部分, 的解释说明。 的解释说明。 5、分界符(分隔符):冒号,空格,逗号和分号。 ):冒号 、分界符(分隔符):冒号,空格,逗号和分号。
汇编语言的构成
5、DB 定义字节命令 、 格式: 数据、 格式:DB 数据、数据表或字符串 说明: 说明: (1)各项用逗号分开; )各项用逗号分开; (2)字符串用单引号括起来; )字符串用单引号括起来; 3)数据存入ROM指定的空间 指定的空间。 (3)数据存入ROM指定的空间。 如: ORG 2000H DB 0A3H LIST:DB 26H,03H : , STR: DB : ‘ABC’,’W’,’12345’ , , 汇编后2000H~200BH单元的内容是: 单元的内容是: 汇编后 单元的内容是 A3H 26H 03H 41H 42H 43H 75H 31H 32H 33H 34H 35H
汇编语言的构成
6、DW 定义字命令 、 格式: 位数据、 格式:DW 16位数据、数据表 位数据 说明: 说明: (1)各项用逗号分开; )各项用逗号分开; (2)先存放高 位,再存放低 位; )先存放高8位 再存放低8位 3)数据存入ROM指定的空间 指定的空间。 (3)数据存入ROM指定的空间。 如: ORG 1500H TABLE:DW 7234H,8AH,10H : , , 汇编后1500H~1505H单元的内容是: 单元的内容是: 汇编后 单元的内容是 72H 34H 00H 8AH 00H 10H
第4章 汇编语言程序设计 章
主要内容 汇编语言的构成 汇编语言源程序的设计与汇编 简单程序设计与分支程序设计 循环与查表程序设计 子程序与运算程序设计 重点掌握MCS-51单片机的各种形式的汇编语言程序设计 重点掌握 单片机的各种形式的汇编语言程序设计 的方法. 的方法
汇编语言的构成
4.1.1 程序设计语言 (1)机器语言 机器语言(machine language ) 机器语言 能为计算机直接识别和执行的机器级的语言. 能为计算机直接识别和执行的机器级的语言 (2)汇编语言 assembly language ) 汇编语言( 汇编语言 由助记符, 保留字, 伪指令等组成, 容易为人们识别, 由助记符 保留字 伪指令等组成 容易为人们识别 记 忆和读写, 用来代替机器语言进行程序设计的一种语言. 忆和读写 用来代替机器语言进行程序设计的一种语言 汇编语言不独立于具体的机器. 汇编语言不独立于具体的机器 (3)高级语言 high-level language ) 高级语言( 高级语言 是面向过程和问题并能独立于机器的通用程序设计语言, 是面向过程和问题并能独立于机器的通用程序设计语言 是一种接近人们自然语言和常用数学表达式的计算机语言. 是一种接近人们自然语言和常用数学表达式的计算机语言
简单程序设计
先对NUM单元中低 位取反加 再把由此产生的进位 单元中低8位取反加 解: 先对 单元中低 位取反加1,再把由此产生的进位 位加到NUM+1单元的反码上 最后去掉它的最高位 符号 单元的反码上,最后去掉它的最高位 位加到 单元的反码上 最后去掉它的最高位(符号 位). ORG 0300H NUM DATA 20H MOV R0, #NUM MOV A, @R0 CPL A ADD A, #01H MOV @R0, A INC R0 MOV A, @R0 CPL A ADDC A,#00H
③计算的,程序设计人员必须对计算机有相当深入 计算的, 的了解,才能使用汇编语言编制程序。 的了解,才能使用汇编语言编制程序。 ④汇编语言能直接和存储器及接口电路打交道,也 汇编语言能直接和存储器及接口电路打交道, 能申请中断。因此, 能申请中断。因此,汇编语言程序能直接管理和控 制硬件设备。 制硬件设备。 汇编语言缺乏通用性,程序不易移植。 ⑤汇编语言缺乏通用性,程序不易移植。各种计算 机都有自己的汇编语言, 机都有自己的汇编语言,不同实际上的汇编语言之 间不能通用。 间不能通用。
4.3 简单程序设计
4.3.1 简单程序设计 简单程序是指程序中没有使用转移类指令的程序段,机器 简单程序是指程序中没有使用转移类指令的程序段 机器 执行这类程序时也只需按照先后顺序依次执行, 执行这类程序时也只需按照先后顺序依次执行 中间不会 有任何分支, 有时称为顺序程序或直线程序. 有任何分支 有时称为顺序程序或直线程序 [例4.2] 请编写能把 请编写能把20H单元内两个 单元内两个BCD数变换成相应的 例 单元内两个 数变换成相应的 ASCII码 并放在21H(高位 ASCII码, 并放在21H(高位BCD数的ASCII码)和22H (低位 高位BCD数的 数的ASCII码)和 (低位 BCD数的 数的ASCII码 )单元的程序 单元的程序. 数的 码 单元的程序 算法:把两个 把两个BCD数拆开后 分别加 数拆开后, 即可. 解: 算法 把两个 数拆开后 分别加30H即可 即可 相应程序如下: 相应程序如下 ORG 0500H MOV R0,#22H MOV @R0,#00H
汇编语言的构成
由于计算机只能识别二进制数, 由于计算机只能识别二进制数,所以计算机的指令均由二进 制代码组成。 制代码组成。 为了便于记忆和使用, 为了便于记忆和使用,计算机制造厂对指令系统的每一条指 令都给出了助记符。因此, 令都给出了助记符。因此,助记符是根据机器指令不同的功 能和操作对象来描述指令的符号。 能和操作对象来描述指令的符号。 这种用助记符形式来表示的机器指令称为汇编语言指令。 这种用助记符形式来表示的机器指令称为汇编语言指令。因 汇编语言是一种采用助记符表示指令、 此,汇编语言是一种采用助记符表示指令、数据和地址来设 计程序的语言。 计程序的语言。
汇编语言的构成
4.1.3 汇编语言构成 1. 指令性语句 是指采用指令助记符构成的汇编语言语句,它必须符合汇 是指采用指令助记符构成的汇编语言语句 它必须符合汇 编语言的语法规则. 指令性语句与计算机的指令一一对应. 编语言的语法规则 指令性语句与计算机的指令一一对应 MCS-51有111条指令的助记符语句 条指令的助记符语句. 有 条指令的助记符语句 2. 指示性语句 指示性语句又称伪指令语句,简称伪指令 简称伪指令. 指示性语句又称伪指令语句,简称伪指令. 伪指令是在机器汇编时,供汇编程序识别和执行的命令 供汇编程序识别和执行的命令,可 伪指令是在机器汇编时 供汇编程序识别和执行的命令 可 以用来对机器的汇编过程进行某种控制,令其进行一些特 以用来对机器的汇编过程进行某种控制 令其进行一些特 殊的操作. 殊的操作 例如:规定生成的目标代码在内存中的存放区域 规定生成的目标代码在内存中的存放区域,为源程序 例如 规定生成的目标代码在内存中的存放区域 为源程序 中的符号和标号赋值以及指示汇编的结束. 中的符号和标号赋值以及指示汇编的结束 的汇编语言中, 常用的伪指令共有8条 现分别 在MCS-51 的汇编语言中 常用的伪指令共有 条,现分别 介绍如下: 介绍如下
汇编语言的构成
7、DS 定义存储空间命令 、 格式: 表达式(常数) 格式:DS 表达式(常数) 说明:汇编时, 说明:汇编时,从指定地址开始保留一定数量 的存储空间。 的存储空间。 如: ORG 1000H DS 08H DB 30H,8AH , 汇编后: 汇编后: 1000H~1007H单元保留 单元保留 (1008H)=30H ) (1009H)=8AH )
汇编语言的构成
4、DATA 数据地址赋值命令 、 格式: 表达式( 格式:字符名称 DATA 表达式(数据或地址 ) 说明: 说明: (1)主要用于定义变量或数据; )主要用于定义变量或数据; (2)格式中的表达式必须是确定的值; )格式中的表达式必须是确定的值; 的区别: (3)与EQU的区别: ) 的区别 中的表达式不能是字符串; ①DATA中的表达式不能是字符串; 中的表达式不能是字符串 定义的字符名必须先定义后使用, ②EQU定义的字符名必须先定义后使用,而DATA定义的字符名可以先 定义的字符名必须先定义后使用 定义的字符名可以先 使用后定义 如:ABC DATA 36H MOV ABC,#32 , MOV MOV A,ABC , R3,#ABC , ;#32→36H,ABC作变量用 , 作变量用 ;#36H→R3,ABC作常数用 , 作常数用
简单程序设计
MOV A, 20H XCHD A, @R0 ORL 22H, #30H SWAP A ORL A, #30H MOV 21H, A SJMP $ END [例4.3] 已知一个补码形式的 位二进制数 低8位在 例 已知一个补码形式的16位二进制数 位二进制数(低 位在 位在NUM 单元, 位在NUM+1单元 试编写能求该 位二进制数 单元), 单元 高8位在 位在 单元 试编写能求该16位二进制数 原码的绝对值的程序. 原码的绝对值的程序
汇编语言的构成
8、BIT 定义位地址符号(位变量)命令 、 定义位地址符号(位变量) 格式: 格式:字符名 BIT 位地址 如: A1 BIT P1. 0 A2 BIT 02H FLAGRUN BIT
08H
4.2 汇编语言源程序的设计与汇编
4.2.1 汇编语言源程序的设计步骤 (1)拟制设计任务书 拟制设计任务书 (2)建立数学模型 建立数学模型 (3)确立算法 确立算法 (4)绘制程序流程图 绘制程序流程图 (5)编制汇编语言源程序 编制汇编语言源程序 (6)上机调试 上机调试 4.2.2 汇编语言源程序的汇编 1. 人工汇编 2. 机器汇编
汇编语言的特点
①助记符指令和机器指令一一对应。用汇编语言编制的程序, 助记符指令和机器指令一一对应。用汇编语言编制的程序, 效率高,占用存储空间小,运行速度快。 效率高,占用存储空间小,运行速度快。 用汇编语言编程比用高级语言困难。 ②用汇编语言编程比用高级语言困难。因为汇编语言是面向
汇编语言的构其中项是字符串 MOV A,AA , SHU EQU 100 DELAY EQU 07EBH MOV A,SHU 作地址(存储单元 , ;SHU作地址 存储单元 用 作地址 存储单元)用 LCALL DELAY ABC EQU 30H MOV MOV MOV ABC,#46H , R2,ABC , A,#ABC , 作变量用, ;#46H→30H,ABC作变量用, , 作变量用 ;即作地址用 ;(30H)→R2 ) ;( ;#30H→A,ABC作常数用 , 作常数用
汇编语言的构成
1、ORG 汇编起始命令 、 格式: 格式:ORG 16位地址 位地址 如:ORG 0100H 2、END 程序结束命令 、 格式:END 格式: 3、EQU 赋值命令 、 格式: 数据、表达式或字符串) 格式:字符名称 EQU 项(数据、表达式或字符串) 说明: 说明: (1)字符名称必须以字母开头; )字符名称必须以字母开头; (2)用字符表示的数据汇编不能区分立即数和地址, )用字符表示的数据汇编不能区分立即数和地址, 在使用中确定; 在使用中确定; (3)若定义的是地址或寄存器,可作变量用。 )若定义的是地址或寄存器,可作变量用。