单片机原理与应用-4汇编语言程序设计

上传人:aa****6 文档编号:50951346 上传时间:2018-08-11 格式:PPT 页数:115 大小:1.25MB
返回 下载 相关 举报
单片机原理与应用-4汇编语言程序设计_第1页
第1页 / 共115页
单片机原理与应用-4汇编语言程序设计_第2页
第2页 / 共115页
单片机原理与应用-4汇编语言程序设计_第3页
第3页 / 共115页
单片机原理与应用-4汇编语言程序设计_第4页
第4页 / 共115页
单片机原理与应用-4汇编语言程序设计_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《单片机原理与应用-4汇编语言程序设计》由会员分享,可在线阅读,更多相关《单片机原理与应用-4汇编语言程序设计(115页珍藏版)》请在金锄头文库上搜索。

1、第四章第四章 汇编语言程序设计汇编语言程序设计简介 4-1 汇编语言概述 汇编语言程序设计 4-2顺序程序设计 4-3分支程序设计 4-4循环程序设计 4-5子程序设计 4-6 汇编语言程序设计实例4.1 汇编语 言概述 程序设计语言 汇编语言源程序格式 汇编语言伪指令 目标程序的生成一、程序设计语言 程序设计语言种类繁多,且还在不断的产生 和发展,但总体可以分为以下三类: 机器语言 汇编语言 高级语言机器语言能直接或经人工(或监控程序)翻译后为机器识别 或执行。 1.机器语言的两种形式二进制形式能为机器直接识别和执行十六进制形式可为监控程序翻译成二进制形式 2.机器语言的特点1)能为机器直接

2、识别和执行2)有难读、难写、难查错和难交流等四难。汇编语言(Assembly language)汇编语句的集合,是一种面向机器的程序设 计语言,因机器而异。 1.汇编语句的分类指示性语句又称伪指令,汇编时不产生机 器码,但可为汇编程序识别和执行,以对汇 编过程进行控制。指令性语句指令系统中指令的全体汇编语言的特点2.汇编语言的特点: 1)符号语言用于编程 2)所编程序汇编成机器语言才能为CPU执行 3)可直接操作到机器内部的寄存器和RAM单元 占用存储空间小,运行速度快。 4)汇编语言是面向计算机的,程序设计人员必须对 计算机硬件有相当的了解。 5)能直接管理和控制硬件设备。 6)缺乏通用性,

3、不易移植,编写较困难。高级语言(High-Level Language)是一种面向过程和问题的程序语言,常不因机器而 异。例如,Basic, C, C+ , Java等 特点: 1)面向对象和问题的,接近于自然语言和数学表达 式。 2)独立于机器 3)一条语句对应一段汇编语言程序 4)经解释(或编译)成机器语言后才能为CPU执行 。汇编语言与高级语言的比较:(1)在功能相同条件下,汇编语言源程序生成的目 标程序比高级语言源程序生成的目标程序占用存储 单元少、执行速度快,一般有速度要求场所尽可能 采用汇编语言编写源程序; (2)由于汇编语言的“面向机器”性,能更合理地使 用计算机硬件资源,所以在

4、检测、控制、数据采集 、通讯等场合比高级语言编程更方便、简捷。二、汇编语言源程序的格式 1.名词解释: 汇编程序是一种由制造厂家或软件公司提 供的实用程序,能把汇编语言源程序翻译成 机器语言,供CPU执行。 汇编语言源程序设计者编写的程序二、汇编语言源程序格式二、汇编语言源程序格式 汇编语言源程序由源语句组成,其语句结构四要素按 书写次序依次为:1、标号; 2、操作码; 3、操作数; 4、注释。 即:标号 : 操作码 操作数 ; 注释 如:START: MOV R1,30H ;(30H) R1标号:标号:也叫标号地址或符号地址,位于一条语句的开 头,可以任选或省略。标号由18个英文字母和数字组

5、成,开头必须是 英文字母。当标号的长度超过8个字符时,汇编程序会 自动舍去超出的部分。各指令助记符、寄存器名以及 伪指令符等保留符号不能用作标号,同一标号也不能 在同一程序的不同语句中使用。 操作码:操作码:用于指示计算机进行何种操作。它可以是指 令的助记符,如ADD、MOV等;也可以是伪指令语句 中的定义符,规定这个语句的伪操作功能,如END、 DB等。 操作数:操作数:一般为立即数、寄存器、直接地址和寄存器间接 地址等,具有多种表示形式。对于立即数来说,可以是二 进制数,加后缀“B”;可以是十进制数,加后缀“D”或不加 后缀;也可以是十六进制数。对于直接地址来说,可以是 二进制数、十进制数

6、或十六进制数,可以是特殊功能寄存 器名,也可以是定义过的标号地址或带加减算符的表达式 。例如,若MAX已在某处定义过,则MAX、MAX+2、 MAX1等作为直接地址来用都是合法的 。 注释:注释:用于对指令或程序的含义进行注解,一行不够写而 需另起一行时也要以分号开头。 MCS 51汇编语言的伪指令 汇编语言程序变成单片机能执行的机器语言 的过程称为汇编,可以手工汇编,也可以由 计算机汇编。 机器汇编时,在源程序中应向编译软件发出 如何完成汇编的指示信息。这些指示信息就 是伪指令。 伪指令具有控制汇编程序的输入输出、定义 数据和符号、条件汇编、分配存储器空间等 功能。 不同编译软件的伪指令有所

7、不同。 伪指令没有对应的机器码三、汇编语言伪指三、汇编语言伪指令令伪指令的定义:用汇编语言编写的源程序要通过汇编程序翻译成机器语言表示的目标代码才能被计算机直接识别和执行。汇编程序对源程序进行汇编时,还需要一些指令能够对机器的汇编过程进行某种控制,令其进行一些特殊操作。例如要指定程序或数据存放的起始地址,给一些连续存放的数确定单元以及指示汇编结束等等。这些指令就是伪指令。伪指令只是汇编工具的一些约定,是不能执行的指令,因而汇编时不会产生可执行的目标代码,不会影响程序的执行以及代码和数据的分布。 汇编语言的构成 MCS-51的源程序由指示性语句(伪指令)和指令性语句组 成。 (1)指令性语句(1

8、11条)基本语句,程序设计的主体。特点: 指令码 助记符 (2)指示性语句(8条)供汇编语言程序识别和执行,对汇编过程进行某种控制。特点:助记符 指令码指令码如下:1.ORG/END伪指令 2.EQU/DATA伪指令 3.DB/DW/DS伪指令 4.BIT伪指令对应无对应MCS-51MCS-51常用的伪指令介绍常用的伪指令介绍(1)ORG (Origin)定义起始地址伪指令格式: 标号: ORG 16位地址其中方括号中的标号是任选项,可以省略。汇编语言源程序中允许多次使用ORG伪指令,但所规定的各程序段存放地址不能有重叠。例: ORG 1000HSTART: MOV R1,#01HADD A,

9、 R1机器汇编时就把ORG下面的这段源程序连续存放在以1000H开始的存储单 元内。(2)EQU (Equate)等值伪指令格式:字符名称 EQU 数据或汇编符号 该指令通常放在汇编语言源程序的开头,用于给字符名称赋一个特定值,赋值后,其值在整个程序中都有效。 在一个源程序中,任何一个标号只能赋值一次。 赋值后的字符名称既可以作地址使用也可以作为立即数使用。例: AA EQU R1赋值后,AA即可代替寄存器R1来使用。 例:BB EQU 35HTEST EQU 1500H LOOP EQU TESTMOV A, BB LCALL LOOP 其中,BB赋值以后被当作直接地址使用,TEST被赋值为

10、1500H以后,LOOP也为1500H。 (3) DATA 数据地址赋值伪指令 格式:字符名称 DATA 表达式该伪指令和EQU类似,用于把右边的表达式赋值给指定的字符名称。 DATA伪指令和EQU伪指令的区别在于: DATA伪指令中的表达式除了可以是一个数据或地址以外,还可以是 一个包含定义的字符名称在内的表达式,而用EQU定义的字符不能这样 使用;EQU可以把汇编符号赋值给字符名,而DATA只能把数据赋给字符 名,例如指令AA DATA R1就是不合法的;另外,EQU定义的字符名称必须先定义后使用,而DATA没有这种 限制。(4) DB (Define Byte)定义字节伪指令格式:标号:

11、 DB 项或项表该伪指令用于从指定的地址单元开始,在程序存储器中定义一个或若 干个字节数据。其中定义的字节数据可以是二进制数、十进制数、十六进制数,也可 以是用引号引起来的ASCII码字符。多个字节数据之间用逗号“,”分隔。例: ORG 2000HTAB1: DB 00101101B,91,02H,ABTAB2: DB 2,8伪指令ORG指定了标号TAB1的地址为2000H,汇编程序将把以上指令中指定的 内容依次存入从2000H开始的连续单元中。即汇编后,各单元内容为 :(2000H)2DH、(2001H) 5BH、 (2002H)02H、(2003H)41H、 (2004H)42H、(200

12、5H)FEH、(2006H)38H(5) DW (Define Word)定义字伪指令 格式: 标号: DW 1至8项的16位数据该伪指令功能与DB类似,只是在程序存储器中定义的是字(16位二进制数),以字为单位先高字节、后低字节依次存入存储单元中。 多项数据必须以逗号分开。例: ORG 2000HTAB: DW 2030H,0A3H汇编后各单元内容依次为: (2000H)20H、(2001H)30H、(2002H)00H、(2003H)A3H(6)DS(Define Storage)定义空间伪指令格式: 标号: DS 表达式该伪指令用于从指定地址单元开始,保留一定数量的内存空间作备用。汇编时

13、汇编程序根据表达式的值预留相应数量的存储单元而不对这些 单元赋值。DB、DW和DS伪指令都只是针对程序存储器而言,不能对数据存储器进行相关操作。例: ORG 8100HBUFFER DS 10HDW ABDW 100H,1ACH8100H-810FH为缓冲区空间;(8110H)=41H; (8111H)=42H;从(8112H)起存放01H、00H、01H、ACH(7)BIT 位地址赋值伪指令 格式:字符名称 BIT 位地址 该伪指令用于把位地址赋值给指定的字符名称。 位地址可以是绝对地址,也可以是符号地址。例:A1 BIT ACC.0A2 BIT 00H 前者把ACC.0的位地址赋给A1,后

14、者把位地址00H赋给A2 ,这样定义过的A1和A2就可以作为位地址来使用了。(8)END汇编结束伪指令格式: 主程序模块 标号: END 表达式子程序模块 标号: END 该伪指令是汇编语言源程序的结束标志,用于指示结束汇编。一 个源程序只能有一个END语句,而且必须放在整个程序的末尾 。 只有主程序模块才具有表达式,且表达式的值等于该程序模块的 入口地址。子程序模块没有该项四、目标程序的生成四、目标程序的生成 1、手工汇编:对照汇编语言指令表,将汇编语言 源程序正确翻译成机器语言目标程序, 注意多字节指令中的机器码次序。 手工汇编需要两次扫描: (1)第一次扫描:确定每条指令的指令 码(2)

15、第二次扫描:确定指令码中的标号 值和地址偏移量。 2、机器汇编:借助于PC机及汇编程序等工具将汇编语 言源程序翻译成机器语言目标程序。通常汇编语言源程序的文件扩展名为 “.ASM”,汇编后生成扩展名为“.HEX”的十 六进制机器码文件和扩展名为“.LST”的列表 文件等。汇编过程示意图 汇编语言程序设计的特点 数据的存放、寄存器和工作单元的使用等要 由设计者安排。 要求设计人员对所使用计算机的硬件结构有 较详细的了解,特别是对各类寄存器、端口 、定时器/计数器、中断等内容能熟练掌握, 以便在程序设计中使用。 程序设计的技巧性较高,需要软件与硬件的 结合。汇编语言程序设计汇编语言程序设计一、汇编

16、语言程序设计步骤 二、程序流程图 三、结构程序设计基本模块 四、子程序一、汇编语言程序设计步骤一、汇编语言程序设计步骤1、分析问题 2、确定算法和解决思路 3、绘制程序流程图 ,分配内存工作单元 4、编写汇编语言源程序 5、程序调试与优化二、程序流程图二、程序流程图流程图的作用:流程图是对程序执行过程的图解表示法, 它往往比文字描述更为直观和有效。其最大特 点为各个功能部分以时间为线索有机地联系起 来。从时间顺序上看整个过程条理井然,所以 不仅在程序设计中使用,还广泛地使用在非计 算机操作的其他场合。处理框图: 表示数据处理、数据传送、输入/输出、某种功能等(矩形框)逻辑判断框图:有两个走向,根据条件判断决定程序

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 教育/培训/课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号