单片机汇编语言程序设计.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机汇编语言程序设计.ppt》由用户(hwpkd79526)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 汇编语言 程序设计
- 资源描述:
-
1、2第四章第四章 汇编语言程序设计汇编语言程序设计 通过前面的学习,我们已经了解了单片机内部的通过前面的学习,我们已经了解了单片机内部的结构,结构,MCS-51MCS-51指令系统的寻址方式、各类指令的格式指令系统的寻址方式、各类指令的格式及功能。及功能。下面我们就是要如何利用下面我们就是要如何利用MCS-51MCS-51的指令系统,来的指令系统,来编写高效、充分利用其特点的程序。编写高效、充分利用其特点的程序。34.1 4.1 概述概述4.1.14.1.1 程序设计语言程序设计语言1.1.机器语言机器语言 在单片机中,用二进制代码表示的指令、数字和符在单片机中,用二进制代码表示的指令、数字和符
2、号简称为机器语言。直接用机器语言编写的程序称为机号简称为机器语言。直接用机器语言编写的程序称为机器语言程序。器语言程序。缺点:程序不易看懂,不便于记忆,容易出错。缺点:程序不易看懂,不便于记忆,容易出错。目前,用于程序设计的语言基本上分为三种:目前,用于程序设计的语言基本上分为三种:42.2.汇编语言汇编语言 用助记符表示的指令称为符号语言或汇编语言。用助记符表示的指令称为符号语言或汇编语言。汇编语言程序汇编语言程序(源程序源程序)需要需要“汇编汇编”(由专门的汇编由专门的汇编程序完成程序完成)才能转换成机器语言。得到的机器语言程序称才能转换成机器语言。得到的机器语言程序称为目标程序。为目标程
3、序。特点:特点:是面向机器的语言,必须对硬件有一定的了解。是面向机器的语言,必须对硬件有一定的了解。助记符指令和机器指令一一对应。助记符指令和机器指令一一对应。能直接管理和控制硬件设备(功能部件)。能直接管理和控制硬件设备(功能部件)。程序设计语言程序设计语言53.3.高级语言高级语言 高级语言不受具体机器的限制,都是参照一些数学语高级语言不受具体机器的限制,都是参照一些数学语言而设计的,使用了许多数学公式和数学计算上的习惯用言而设计的,使用了许多数学公式和数学计算上的习惯用语,非常擅长于科学计算。语,非常擅长于科学计算。常用的高级语言,如常用的高级语言,如BASICBASIC、FORTRAN
4、FORTRAN、C C语言等。语言等。特点:特点:通用性强,直观、易懂、易学、可读性好。通用性强,直观、易懂、易学、可读性好。计算机不能直接识别和执行。(需要进行编译)计算机不能直接识别和执行。(需要进行编译)发展很快。发展很快。64.1.2 4.1.2 编制程序的步骤编制程序的步骤1.1.任务分析(硬件、软件系统分析)任务分析(硬件、软件系统分析)2.2.确定算法和工作步骤;确定算法和工作步骤;3.3.程序总体设计和流程图绘制程序总体设计和流程图绘制关于流程图符号:关于流程图符号:开始、结束开始、结束-圆角矩形圆角矩形工作任务工作任务-矩形矩形判断分支判断分支-菱形菱形程序流向程序流向-程序
5、连接程序连接-开始结束74.4.分配内存,确定程序与数据区存放地址;分配内存,确定程序与数据区存放地址;5.5.编写源程序;编写源程序;6.6.调试、修改,最终确定程序。调试、修改,最终确定程序。4.1.2 4.1.2 编制程序的步骤编制程序的步骤84.1.3 4.1.3 方法技巧方法技巧1.1.模块化设计(按功能分:显示、打印、输模块化设计(按功能分:显示、打印、输 入、发送等)入、发送等)2.2.尽量采用循环及子程序结构(节省内存)尽量采用循环及子程序结构(节省内存)94.1.4 4.1.4 汇编语言的规范汇编语言的规范汇编语言源程序由以下两种指令构成:汇编语言源程序由以下两种指令构成:汇
6、编语句(指令语句)汇编语句(指令语句)伪指令(指示性语句)伪指令(指示性语句)汇编语句的格式:汇编语句的格式:标号:标号:操作码操作码操作数操作数;注释;注释数据表示形式:数据表示形式:二进制(二进制(B B)、十六进制)、十六进制(H)(H)、十进制、十进制(D(D或省略或省略)、ASCII ASCII码(以单引号标识)码(以单引号标识)10 控制汇编用的特殊指令,这些指令不属于指控制汇编用的特殊指令,这些指令不属于指令系统,不产生机器代码。令系统,不产生机器代码。通过使用伪指令向汇编程序发出指示信息,通过使用伪指令向汇编程序发出指示信息,告诉它如何完成汇编工作。告诉它如何完成汇编工作。伪指
7、令具有控制汇编程序的输入输出、定义伪指令具有控制汇编程序的输入输出、定义数据和符号、条件汇编、分配存储空间等功能。数据和符号、条件汇编、分配存储空间等功能。伪指令伪指令11常用的伪指令常用的伪指令v ORG ORG (Origin)(Origin)定位目的程序的起始地址。定位目的程序的起始地址。格式:格式:ORG ORG 表达式表达式 如:如:ORG 0000HORG 0000H 注:表达式必须为注:表达式必须为1616位地址值。位地址值。v ENDEND 汇编语言程序结束伪指令。汇编语言程序结束伪指令。注:一定放在程序末尾!注:一定放在程序末尾!12v EQUEQU (EQUEQUateat
8、e)赋值伪指令。赋值伪指令。格式:格式:字符名称字符名称 EQUEQU 数值或汇编符号数值或汇编符号 例:例:AAAAEQUEQU30H30HK1K1EQUEQU40H40HMOV AMOV A,AAAA;(30H30H)AAMOV AMOV A,K1K1;(40H40H)AA常用的伪指令常用的伪指令13v DBDB(D Defineefine B Byteyte)从指定单元开始定义(存储)若干个字节的从指定单元开始定义(存储)若干个字节的数据或数据或ASCIIASCII码字符,常用于定义数据常数表。码字符,常用于定义数据常数表。格式:格式:DB DB 字节常数或字节常数或ASCIIASCII
9、字符字符例例:ORGORG 1000H 1000HDBDB34H34H,0DEH0DEH,“A”“A”,“B”“B”DBDB0AH0AH,0BH0BH,2020常用的伪指令常用的伪指令14常用的伪指令常用的伪指令vDWDW(D Defineefine W Wordord)从指定单元开始定义(存储)若干个字的数据从指定单元开始定义(存储)若干个字的数据 或或ASCIIASCII码字符。码字符。格式:格式:DWDW字常数字常数或或ASCIIASCII字符字符 例:例:ORG 2000HORG 2000HDWDW1234H1234H,“B”“B”DWDW0AH0AH,2020 思考思考:(2000H
10、)(2000H)及其以后的地址单元中的内容是多少?及其以后的地址单元中的内容是多少?15常用的伪指令常用的伪指令v BITBIT 位地址符号指令。位地址符号指令。把位地址赋于规定的字符名称。把位地址赋于规定的字符名称。格式格式:字符名称字符名称BITBIT位地址位地址例:例:ABCABCBITBITP1.1P1.1QQQQBITBITP3.2P3.2164.2 4.2 汇编语言程序编辑和汇编汇编语言程序编辑和汇编1.1.编辑(源程序,以编辑(源程序,以.ASM.ASM扩展名存盘);扩展名存盘);2.2.汇编(手工或机器汇编);汇编(手工或机器汇编);如:如:MOV A,#88H;MOV A,#
11、88H;机器码机器码74 88 74 88 又如:又如:地址地址 目标码目标码 源程序源程序 ORG 1000H ORG 1000H 1000H 74 7F MOV A,#7FH 1000H 74 7F MOV A,#7FH 1002H 79 44 MOV R1,#44H 1002H 79 44 MOV R1,#44H END END174.3 4.3 程序设计基础与举例程序设计基础与举例4.3.1 4.3.1 顺序结构程序顺序结构程序org 1000horg 1000hstart:movstart:mov dptr,#2000h dptr,#2000h movmov a,20h a,20h
12、movcmovc a,a+dptra,a+dptr movmov 21h,a 21h,a sjmpsjmp$org 2000horg 2000htable:dbtable:db 0,1,4,9,16,25 0,1,4,9,16,25 end end例1:变量存变量存在内部在内部RAMRAM的的20H20H单元中,单元中,其取值范围:其取值范围:0 05 5,编成,编成,查表法求其查表法求其平方值平方值18开始表格首地址送DPTR变量送A(20H)A查平方表(A+DPTR)A结束结果送21H单元:A 21H19例例2 2:将:将2020H H单元的压缩单元的压缩(Packed Packed)BC
13、DBCD码拆成两个码拆成两个ACSIIACSII码存入码存入2121H H、22H22H单元。单元。内部内部RAMRAM22H21H20H6 93 63 9BCD 0 1 2.9ASCII 30H 31H 32H.39H20方法1(20H)A10HBA/B,A中为高中为高4位位BCD码,码,B中为低中为低4位位BCD码码B+30HBB(21H)A+30HAA(22H)开始结束21周期数周期数 源程序源程序 ORG 2000H ORG 2000HMOV AMOV A,20H20HMOV BMOV B,#10H#10HDIV ABDIV ABORL BORL B,#30H#30HMOV 21HMO
展开阅读全文