第4章 mcs-51汇编语言程序设计

上传人:xzh****18 文档编号:51466157 上传时间:2018-08-14 格式:PPT 页数:102 大小:541KB
返回 下载 相关 举报
第4章 mcs-51汇编语言程序设计_第1页
第1页 / 共102页
第4章 mcs-51汇编语言程序设计_第2页
第2页 / 共102页
第4章 mcs-51汇编语言程序设计_第3页
第3页 / 共102页
第4章 mcs-51汇编语言程序设计_第4页
第4页 / 共102页
第4章 mcs-51汇编语言程序设计_第5页
第5页 / 共102页
点击查看更多>>
资源描述

《第4章 mcs-51汇编语言程序设计》由会员分享,可在线阅读,更多相关《第4章 mcs-51汇编语言程序设计(102页珍藏版)》请在金锄头文库上搜索。

1、第 4 章 汇编语言程序设计简介 第4章 汇编语言程序设计简介 4.1 汇编语言概述 4.2 汇编语言程序设计4.3 汇编程序设计实例 第 4 章 汇编语言程序设计简介 4.1 汇编语言概述4.1.1 程序设计语言的分类及特点能够完成一定功能的指令序列称为程序,用来设计计算机程序的语言称为程序设计语言,按照语言的结构及功能程 序设计语言可分为:机器语言、汇编语言和高级语言。第 4 章 汇编语言程序设计简介 1机器语言是计算机所能识别的唯一语言,由二进制代码0和1构成指令和数据。其具有效率高、响应速度快的特点,但由于机器语言编写的程序依赖于计算机的结构,可移植性差,繁琐且难于记 忆、识别和调试,

2、通常编程时,不采用机器语言。第 4 章 汇编语言程序设计简介 2汇编语言是一种符号语言,指令由助记符表示。与机器语言相比,汇编语言具有指令容易记忆、理解、识别和可读性好的优点,但实质上由于汇编语言也是面向机 器的语言,是机器语言程序的符号表示,所以用户必须熟悉 机器的硬件结构和指令系统,掌握计算机的工作过程才能熟 练编程。 另外,汇编语言所编写的源程序与经过汇编所产生的机器代码程序之间有明显的一一对应关系,所以汇编语言编写 的程序同样也存在通用性差,程序不能移植的缺点。第 4 章 汇编语言程序设计简介 3高级语言高级语言是接近于人的自然语言形式的计算机编程语言 的总称,例如C语言、BASIC语

3、言等都是高级语言。和汇编语言相比,高级语言指令简单易学,用户容易掌握,且高级语言程序不依赖于具体的硬件结构和指令系统 ,程序可移植性好,但是高级语言编写的源程序必须经过 编译或解释程序翻译成目标程序,机器才能执行,而生成 的目标程序需占用较多的存储单元,执行时间较长,运行 效率较低。第 4 章 汇编语言程序设计简介 4.1.2 单片机汇编语言源程序的编辑和汇编汇编语言的指令类型汇编语言源程序由两种类型的汇编语言语句(即指令)构成。语句按性质不同分为两类:指令性语句(机器指令) 和指示性语句(伪指令)。(1)机器指令指令系统中的全部指令,每条指令都有对应的机器代码,是机器真正能够执行的指令。(2

4、) 伪指令为汇编程序在汇编过程中提供控制或指示信息,并不直接产生机器代码,属于机器不能执行的指令类型。第 4 章 汇编语言程序设计简介 汇编计算机不能直接识别和执行源程序。因此源程序必须经过汇编程序汇编产生机器码目标程序文件,程序才能执行 。这种将汇编语言源程序转换成机器语言程序的过程称为汇 编。汇编语言 源程序汇编程序目标文件和源程序列表经过汇编后第 4 章 汇编语言程序设计简介 汇编语言源程序的汇编过程分为手工汇编和机器汇编。所谓手工汇编,即采用人工查指令表的方法将汇编指令翻译成相应机器代码。通常源程序的人工汇编需要两次才能完成,第一次汇编查找每条指令的机器代码,第二次汇编完成地址偏移量的

5、计算。由于手工汇编需要计算和查找,繁琐而且容易出错,而且程序修改时可能会引起指令的地址变化,转移指令的偏移量也 随之改变,需要重新计算,所以手工汇编主要应用于设计短小 程序或调试程序的场合。第 4 章 汇编语言程序设计简介 所谓机器汇编,即采用汇编程序对源程序进行自动汇编 ,由于单片机软硬件资源的限制,该过程通常借助于PC系统机实现,象这种借助于一种计算机而为另一种计算机产生目标 代码的汇编方式又称为交叉汇编。交叉汇编交叉汇编的原理类似于手工汇编,在汇编程序中通常存入了两张表,即MCS-51单片机的指令代码表和伪指令表。汇编程序通常通过两次扫描完成汇编,第一次扫描查找源程序中 每条指令的机器代

6、码,第二次扫描完成地址偏移量的计算,汇 编后生成目标文件和列表文件。这是目前应用较广的汇编方法 。第 4 章 汇编语言程序设计简介 汇编的主要功能为:(1)确定程序中每条汇编语言指令的指令机器码。(2)确定每条指令在程序存储器中的存放地址。(3)提供语法、编辑等方面的错误信息,但不能提供程序的逻辑错误。(4)产生目标执行文件(*.OBJ/*.HEX)和列表文件(*.LST)。第 4 章 汇编语言程序设计简介 4.1.3 伪 指 令 一、 汇编起始指令 ORG指令格式为: ORG 16位地址该指令的作用是指明后面的程序或数据块的起始地址, 它总是出现在每段源程序或数据块的开始。 16 位地址,

7、确定了此语句后面第一条指令或第一个数据的地址,此后的源程序或数据块就依次连续存放在以后的地址内, 直到遇到另一个ORG指令为止。 第 4 章 汇编语言程序设计简介 例: ORG 2000HMOV SP, 60HMOV R0, 2FHMOV R2, 0FFHORG伪指令说明其后面程序的目标代码在存储器中存放的起始地址是2000H, 即存储器地址 目标程序2000H 75 81 60 2003H 78 2F2005H 7A FF 第 4 章 汇编语言程序设计简介 二、等值指令EQU指令格式: 字符名称 EQU 数字或汇编符号功能: 使指令中的字符名称等价于给定的数字或汇编符号。 使用等值指令可给程

8、序的编制、调试、修改带来方便:如 果在程序中要多次使用到某一地址,由EQU指令将其赋值给 一个字符名称,一旦需要对其进行变动,只要改变EQU命令后面的数字即可,而不需要对程序中涉及到该地址的所有指 令逐句进行修改。第 4 章 汇编语言程序设计简介 注意, 由EQU等值的字符名称必须先赋值后使用,且 在同一个源程序中,同一个标号只能赋值一次。 例: PA8155 EQU 8001H即给标号PA8155赋值为8001H。 第 4 章 汇编语言程序设计简介 三、 定义字节指令DB指令格式: 标号: DB 8位二进制数表功能: 把 8 位二进制数表依次存入从标号开始的连续的存储单元中。 格式中, 标号

9、区段可有可无, DB指令之后的 8 位二进制数表是字节常数或用逗号隔开的字节串, 也可以是用引号括起来的ASCII码字符串 (一个 ASCII字符相当于一个字节)。 例: 第 4 章 汇编语言程序设计简介 ORG 1000HBUF1: DB 38H, 7FH, 80HBUF2: DB 45H, 66HORG伪指令指定了标号BUF1的地址为1000H, 而DB伪指令是将其后的二进制数表38H, 7FH, 80H依次存放在1000H, 1001H, 1002H 3 个连续单元之中, BUF2也是一个标号, 其地址与前一条伪指令连续, 即1003H, 1004H地址单元中依次存放 45H, 66H。

10、 第 4 章 汇编语言程序设计简介 四、 定义字指令DW指令格式: 标号: DW 16 位数据表该指令的功能与DB相似, 区别仅在于从指定地址开始存放的是指令中的 16 位数据, 而不是字节串。每个 16 位数据要占两个存储单元, 高8 位先存, 低 8 位后存, 这和MCS -51指令中的16位数据存放顺序是一致的。 第 4 章 汇编语言程序设计简介 五、DS(Define Store)定义存储区指令功能为:从指定的单元地址开始,保留一定数量的存储单元, 以备使用。指令格式: 标号: DS 表达式其中,表达式指定保留的内存单元个数。例如,ORG 1000HDS 10TAB: DB 10H汇编

11、结果:从1000H地址处开始,保留10个字节单元。( 100AH)=10H。第 4 章 汇编语言程序设计简介 六、BIT位地址符号指令指令功能为:将位地址赋值给指定的符号名称,通常用于位符号地址的定义。指令如下: 字符名称BIT 位地址例如,X1 BIT P1.0汇编结果为将位地址P1.0赋给变量X1,即在程序中便可使用X1代替位地址P1.0。第 4 章 汇编语言程序设计简介 七、DATA数据地址赋值指令指令功能:将数据地址或指令代码地址赋值给所指定的标号。通常在程序中用于定义数据地址。指令格式如下:标号:DATA 表达式例如,AA:DATA 2000H汇编结果为:AA=2000H。第 4 章

12、 汇编语言程序设计简介 【注意】:DATA与EQU的区别在于:(1)EQU定义的标识符在汇编时不在符号表中登记,因此必须先定义后使用;(2)DATA定义的标识符汇编时在符号表中登记,所以可以先使用后定义。第 4 章 汇编语言程序设计简介 八、 汇编结束指令END指令格式: 标号: END 地址或标号格式中标号以及END后面的地址或标号可有可无。 功能: 提供汇编结束标志。汇编程序遇到 END后就停止汇编, 对 END以后的语句不予处理, 故 END应放在程序的结束处。 第 4 章 汇编语言程序设计简介 4.2 汇编语言程序设计 4.2.0 程序设计步骤4.2.1 顺序结构4.2.2 分支结构4

13、.2.3 循环结构4.2.4 子程序调用第 4 章 汇编语言程序设计简介 4.2.0 程序设计 步骤对于简单程序的编写,程序设计者往往能够立即完成软件的构思与编写,而对于比较复杂的程序设计问题,则需要科学合理的程序设计步骤。从软件工程角度来说,开发一个应用程序,一般需要经过以下几个步骤:第 4 章 汇编语言程序设计简介 第 4 章 汇编语言程序设计简介 4.2.1 顺序程序设计顺序程序是程序设计中最基本的结构,又称为简单程序。特点为顺序执行每一条指令,直到最后。其执行过程 如图4-3所示。 S1S2图4-3 顺序结构第 4 章 汇编语言程序设计简介 【例 1】 两个无符号双字节数相加。 设被加

14、数存放于内部RAM的40H(高位字节), 41H(低位字节), 加数存放于50H(高位字节), 51H(低位字节), 和数存入 40H和41H单元中。 第 4 章 汇编语言程序设计简介 程序如下: START: CLR C ; 将Cy清零MOV R0, 41H ; 将被加数地址送数据指针R0MOV R1, 51H ; 将加数地址送数据指针R1AD1: MOV A, R0 ; 被加数低字节的内容送入A ADD A,R1 ; 两个低字节相加 MOV R0, A ; 低字节的和存入被加数低字节中DEC R0 ; 指向被加数高位字节DEC R1 ; 指向加数高位字节MOV A, R0 ; 被加数高位字

15、节送入A ADDC A, R1 ; 两个高位字节带Cy相加MOV R0, A ; 高位字节的和送被加数高位字节RET 第 4 章 汇编语言程序设计简介 4.2.2 分支程序设计1. 分支程序结构2. 一般分支程序设计3. 分支表法实现多向分支程序的设计第 4 章 汇编语言程序设计简介 条 件S1S2YN条件S1条件N S2S1Sn(a)单分支 (b)双分支 (c)多分支1. 分支程序结构第 4 章 汇编语言程序设计简介 【例5】 x, y均为8位二进制数, 设 x存入R0, y存入R1, 求解: 2. 一般分支程序结构实例第 4 章 汇编语言程序设计简介 程序如下: START: CJNE R0,00H,SUL1 ; R0中的数与00比较不等转移 MOV R1, 00H;

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

当前位置:首页 > 行业资料 > 其它行业文档

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