《单片机原理及应用》课程教学资源(PPT教学课件)第四章 汇编语言程序设计

第四章 汇編语言程序设讣
第四章 汇编语言程序设计

4.1汇编语言程序设计概述 所谓程序设计,就是按照给定的任务要求,编写 出完整的计算机程序。要完成同样的任务,使用的方 法或程序并不是唯一的。因此,程序设计的质量将直 接影响到计算机系统的工作效率、运行可靠性。 前面我们学过了汇编语言形式的指令系统,本章 重点介绍汇编语言程序结构以及如何利用汇编语言指 令进行程序设计的方法
所谓程序设计,就是按照给定的任务要求,编写 出完整的计算机程序。要完成同样的任务,使用的方 法或程序并不是唯一的。因此,程序设计的质量将直 接影响到计算机系统的工作效率、运行可靠性。 前面我们学过了汇编语言形式的指令系统,本章 重点介绍汇编语言程序结构以及如何利用汇编语言指 令进行程序设计的方法。 4.1 汇编语言程序设计概述

4.1.1汇编语言程序设计步骤 使用汇编语言设计一个程序大致上可分为以下几个步骤。 (1)分析题意,明确要求。 (2)确定算法。 (3)画程序流程图,用图解来描述和说明解题步骤。 起止框 处理框 半断框 流程线 连接点 图4.1常用的流程图符号 (4)分配内存工作单元,确定程序与数据区的存放地址。 (5)编写源程序 (6)程序优化。 ⑦)上机调试、修改和最后确定源程序
4.1.1 汇编语言程序设计步骤 使用汇编语言设计一个程序大致上可分为以下几个步骤。 (1) 分析题意,明确要求。 (2) 确定算法。 (3) 画程序流程图,用图解来描述和说明解题步骤。 图4.1 常用的流程图符号 (4)分配内存工作单元,确定程序与数据区的存放地址。 (5) 编写源程序 (6) 程序优化。 (7)上机调试、修改和最后确定源程序

422伪指令语句 伪指令并不是真正的指令,也不产生相应的机器 码,它们只是在计算机将汇编语言转换为机器码时, 指导汇编过程,告诉汇编程序如何汇编。下面介绍 些MCS-51汇编程序常用的伪指令 (1)汇编起始伪指令ORG 格式:[标号:]ORG16位地址 功能:规定程序块或数据块存放的起始地址。如 oRG 8000H START: MOVA,#30H 该指令规定第一条指令从地址8000H单元开始存放, 即标号 START的值为8000H
4.2.2 伪指令语句 伪指令并不是真正的指令,也不产生相应的机器 码,它们只是在计算机将汇编语言转换为机器码时, 指导汇编过程,告诉汇编程序如何汇编。下面介绍一 些MCS-51汇编程序常用的伪指令。 (1)汇编起始伪指令ORG 格式:[标号:] ORG 16位地址 功能:规定程序块或数据块存放的起始地址。如: ORG 8000H START: MOV A ,#30H …… 该指令规定第一条指令从地址8000H单元开始存放, 即标号START的值为8000H

2)汇编结束伪指令END 格式:[标号:]END[表达式 功能:结束汇编。 例如: ORG 2000H START: MOV A,#OOH END START 表示标号 START开始的程序段结束。 (3)等值指令EQU 格式:字符名称EQU项 例如, TEST EQU R0 MOv A, TEST
(2)汇编结束伪指令END 格式:[标号:] END [表达式] 功能:结束汇编。 例如: ORG 2000H START: MOV A ,# 00H …… END START 表示标号START开始的程序段结束。 (3)等值指令EQU 格式:字符名称 EQU 项 例如,TEST EQU R0 MOV A,TEST

(4)定义字节指令DB 格式:[标号:]DB8位二进制数表 DB命令是从指定的地址单元开始,定义若干个8 位内存单元的内容。例如 ORG 1000H TAB;DB23H,73,“6 B TABI: DB 110B 以上伪指令经汇编以后,将对从1000H开始的若干 内存单元赋值: (1000H)=23H(1001H)49H (1002H)=36H(1003H)=42H 1004H=06H 其中36H和42H分别是字符6和B的ASC码,其余 的十进制数(73)和二进制数(110B)也都换算为十 六进制数了
(4)定义字节指令DB 格式:[标号:] DB 8位二进制数表 DB命令是从指定的地址单元开始,定义若干个8 位内存单元的内容。例如, ORG 1000H TAB; DB 23H,73, “6” , “B” TABl: DB 110B 以上伪指令经汇编以后,将对从1000H开始的若干 内存单元赋值: (1000H)=23H (1001H)=49H (1002H)=36H (1003H)=42H (1004H)=06H 其中36H和42H分别是字符6和B的ASCII码,其余 的十进制数(73)和二进制数(110B)也都换算为十 六进制数了

(5)定义字命令DW 格式:[标号:]DW16位二进制数表 例如, ORG 1000H TAB: DW 1234H, 0ABH, 10 汇编后: (1000H)=12H(1001H)=34H (1002H)=00H(1003H)=ABH 1004H)=00H(1005H=0AH DB、DW伪指令都只对程序存储器起作用,不能 用来对数据存储器的内容进行赋值或进行其它初始化 的工作
(5)定义字命令 DW 格式:[标号:] DW 16位二进制数表 例如, ORG 1000H TAB: DW 1234H , 0ABH , 10 汇编后: (1000H)=12H (1001H ) = 34H (1002H ) = 00H ( 1003H ) = ABH (1004H ) =00H (1005H) =0AH DB、DW伪指令都只对程序存储器起作用,不能 用来对数据存储器的内容进行赋值或进行其它初始化 的工作

4.2顺序程序设计 顺序结构程序是一种最简单、最基本的程序(也称为简单 程序),它是一种无分支的直线形程序,按照程序编写的顺序 依次执行 【例4-1】两个8位无符号数相加,和仍为8位。 假设两个无符号数X1,X2分别存放于内部RAM6OH 61H单元中,求其和并将和送入62H单元。 程序如下: ORG 0000H CLR MOV R0,#60H :设R0为数据指针 MOV a, ORO :取Ⅹ INC RO ADDC A, aRO :X,+Ⅹ INC RO MOV aRO, A 保存结果 END
4.2 顺序程序设计 顺序结构程序是一种最简单、最基本的程序(也称为简单 程序),它是一种无分支的直线形程序,按照程序编写的顺序 依次执行。 【例4-1】 两个8位无符号数相加,和仍为8位。 假设两个无符号数X1, X2分别存放于内部RAM60H、 61H单元中,求其和并将和送入62H单元。 程序如下: ORG 0000H CLR C MOV R0 ,# 60H ;设R0为数据指针 MOV A ,@R0 ;取X1 1NC R0 ADDC A ,@R0 ;X1+X2 1NC R0 MOV @R0,A ;保存结果 END

【例4-2】两个无符号双字节数相加。设被加数存放在内部存 储器30H(高位字节)、31H(低位字节)单元,加数存放在内 部存储器40H(高位字节)、41H(低位字节)单元,和存入30H (高位字节)、31H(低位字节)单元 程序如下: ORG 0000H CLR :将C清零 MOV R0,#31H :送被加数首址 MOV R1,#41H 送加数首址 MOV A,⑦aRQ 取被加数低宰节 ADD A ORI 两个低宰节相加 MOV ORO. A 低宰节和荐人被加数低宰节 DEC RO 修改指针,指向被加数高宰节 DEC RI 修改指针,指向加数高宰节 MOV A. ORO 取被加数高字节 ADDC A. ORI 高宰节相加 MOV ORO. A 存结果 已ND
【例4-2】两个无符号双字节数相加。设被加数存放在内部存 储器30H(高位字节)、31H(低位字节)单元,加数存放在内 部存储器40H(高位字节)、41H(低位字节)单元,和存入30H (高位字节)、31H(低位字节)单元。 程序如下: ORG 0000H CLR C ;将C清零 MOV R0 ,#31H ;送被加数首址 MOV R1 ,#41H ;送加数首址 MOV A ,@R0 ;取被加数低字节 ADD A ,@R1 ;两个低字节相加 MOV @R0 ,A ;低字节和存人被加数低字节 DEC R0 ;修改指针,指向被加数高字节 DEC R1 ;修改指针,指向加数高字节 MOV A,@R0 ;取被加数高字节 ADDC A,@R1 ;高字节相加 MOV @R0 , A ;存结果 END

【例4-3】编写16位二进制数求补程序 进制数的求补可归结为“求反加1”的过程,求反可用 CPL指令实现;加1时应注意,加1只能加在低8位的最低位上 因为现在是16位数,有两个字节,因此要考虑进位问题,即低8 位取反加1,高8位取反后应加上低8位加1时可能产生的进位, 还要注意这里的加1不能用ⅠNC指令,因为NC指令不影响CY标 ORG 0200H MOV A, RO ;低8位送A CPL A ;取反 ADD A, #OlH ;加1 MOV R2,A ;存结果 MOV A, RI ;高8位送A CPL A ;取反 ADDC A, #OOH ;加进位 MOV R3, A ;存结果 END
【例4-3】编写16位二进制数求补程序 二进制数的求补可归结为“求反加1”的过程,求反可用 CPL指令实现;加1时应注意,加1只能加在低8位的最低位上。 因为现在是16位数,有两个字节,因此要考虑进位问题,即低8 位取反加1,高8位取反后应加上低8位加1时可能产生的进位, 还要注意这里的加1不能用INC指令,因为INC指令不影响CY标 志。 ORG程序如下: 0200H MOV A ,R0 ;低8位送A CPL A ;取反 ADD A ,#01H ;加l MOV R2 ,A ;存结果 MOV A ,R1 ;高8位送A CPL A ;取反 ADDC A ,#00H ;加进位 MOV R3 ,A ;存结果 END
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《单片机原理及应用》课程教学资源(PPT教学课件)第三章 MCS-51单片机指令系统.ppt
- 《单片机原理及应用》课程教学资源(PPT教学课件)第二章 MCS51系列单片机芯片结构.ppt
- 《单片机原理及应用》课程教学资源(PPT教学课件)第一章 微型计算机基础知识.ppt
- 襄樊职业学院:《计算机组装与维护》第17章 微机的常见故障及维修.ppt
- 襄樊职业学院:《计算机组装与维护》第16章 操作系统的维护与优化.ppt
- 襄樊职业学院:《计算机组装与维护》第15章 硬件性能测试.ppt
- 襄樊职业学院:《计算机组装与维护》第14章 微机软件安装.ppt
- 襄樊职业学院:《计算机组装与维护》第13章 微机组装硬件与调试.ppt
- 襄樊职业学院:《计算机组装与维护》第12章 BI0S设置.ppt
- 襄樊职业学院:《计算机组装与维护》第11章 其他外围设备.ppt
- 襄樊职业学院:《计算机组装与维护》第10章 网络设备.ppt
- 襄樊职业学院:《计算机组装与维护》第9章 机箱与电源.ppt
- 襄樊职业学院:《计算机组装与维护》第8章 输入设备.ppt
- 襄樊职业学院:《计算机组装与维护》第7章 声卡与音箱.ppt
- 襄樊职业学院:《计算机组装与维护》第6章 显卡与显示器.ppt
- 襄樊职业学院:《计算机组装与维护》第5章 外存储设备.ppt
- 襄樊职业学院:《计算机组装与维护》第4章 内存储器.ppt
- 《C语言程序设计》课程教学资源:封面与目录.ppt
- 《C语言程序设计》课程教学资源:电子教案的结构和使用说明.doc
- 《C语言程序设计》课程教学资源:第12章 文件.ppt
- 《单片机原理及应用》课程教学资源(PPT教学课件)第五章 单片机存储器扩展技术.ppt
- 《单片机原理及应用》课程教学资源(PPT教学课件)第六章 单片机的中断与定时系统.ppt
- 《单片机原理及应用》课程教学资源(PPT教学课件)第六章(6-1)中断的基本概念.ppt
- 《单片机原理及应用》课程教学资源(PPT教学课件)第七章 单片机I/0口扩展及应用.ppt
- 《单片机原理及应用》课程教学资源(PPT教学课件)第八章 单片机串行数据通信.ppt
- 《单片机原理及应用》课程教学资源(PPT教学课件)第九章 A/D和D/A转换器接口.ppt
- 《单片机原理及应用》课程教学资源(PPT教学课件)第十章 AT89C2051 Flash单片机.ppt
- 《单片机原理及应用》课程教学资源(PPT教学课件)第十一章 单片机应用系统设计.ppt
- 浙江大学:《单片微型计算机原理与接口技术》课程电子教案(PPT教学课件)第一章 绪论.ppt
- 浙江大学:《单片微型计算机原理与接口技术》课程电子教案(PPT教学课件)目录.ppt
- 浙江大学:《单片微型计算机原理与接口技术》课程电子教案(PPT教学课件)第二章 单片微机的基本结构.ppt
- 浙江大学:《单片微型计算机原理与接口技术》课程电子教案(PPT教学课件)第三章 80C51单片微机的指令系统.ppt
- 浙江大学:《单片微型计算机原理与接口技术》课程电子教案(PPT教学课件)第四章 80C51单片微机的程序设计.ppt
- 上海理工大学:《电子商务基础与应用》课程教学资源(PPT课件)第二章 电子商务发展战略.ppt
- 《单片机及应用》第2章 MCS-51单片机的硬件结构.ppt
- 《单片机及应用》第2章(2-1) MCS-51单片机的外部引脚说明.ppt
- 《单片机及应用》第3章 指令系统及汇编.ppt
- 《单片机及应用》第1章 单片微型计算机概述.ppt
- 《单片机原理与应用》课程教学资源(PPT课件讲稿)第2章 增强型MCS-51单片机结构.ppt
- 《单片机原理与应用》课程教学资源(PPT课件讲稿)第3章 MCS-51指令系统.ppt