MCS-51单片机汇编语言程序设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《MCS-51单片机汇编语言程序设计课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS 51 单片机 汇编语言 程序设计 课件
- 资源描述:
-
1、单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束第第4章章 汇编语言程序设计汇编语言程序设计教学目标教学目标4.1 4.1 单片机汇编语言与指令格式单片机汇编语言与指令格式4.2 4.2 源程序的设计步骤和汇编源程序的设计步骤和汇编 4.3 4.3 汇编语言程序设计汇编语言程序设计本章小结本章小结思考题与习题思考题与习题单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束教学目标教学目标 通过本章教学,要求达到以下目标:通过本章教学,要求达到以下目标: 1. 熟悉熟悉汇编语言的汇编语言的语句结构语句结构; 2. 了
2、解了解手工汇编,计算偏移量及转移地址的手工汇编,计算偏移量及转移地址的 方法;方法; 3. 了解了解程序设计的步骤,会画程序流程图;程序设计的步骤,会画程序流程图; 4. 掌握掌握顺序程序、分支程序、循环程序、子程顺序程序、分支程序、循环程序、子程 序等基本程序的编制方法。序等基本程序的编制方法。 单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束4.1 MCS51单片机汇编语言与指令格式单片机汇编语言与指令格式 4.1.1 程序设计语言程序设计语言程序设计语言程序设计语言机器语言机器语言汇编语言汇编语言高级语言高级语言单片机原理及其接口技术单片机原理及
3、其接口技术主目录主目录上一页上一页下一页下一页结结 束束机器语言机器语言 由于构成计算机的电子器件特性所决定由于构成计算机的电子器件特性所决定, 计算机只能计算机只能识别二进制代码。识别二进制代码。 这种这种以二进制代码来描述指令以二进制代码来描述指令功能的语言功能的语言, 称之为称之为机器语言机器语言, 用机器语言组用机器语言组成的程序成的程序, 称为称为目标程序目标程序。 计算机就是按照机器计算机就是按照机器语言的指令来完成各种功能操作的语言的指令来完成各种功能操作的, 它具有它具有程序简捷、占程序简捷、占用存储空间小、执行速度快、控制功能强用存储空间小、执行速度快、控制功能强等特点。等特
4、点。单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束汇编语言汇编语言 用来替代机器语言的进行程序设计的用来替代机器语言的进行程序设计的一种语言,一种语言,由助记符、保留字和伪指令等由助记符、保留字和伪指令等组成组成。很容易让人们所识别、记忆和读写。很容易让人们所识别、记忆和读写。 汇编语言编写出的程序是汇编语言编写出的程序是汇编语言源程序汇编语言源程序,可由可由“汇编程序汇编程序”翻译成翻译成机器语言程序机器语言程序(即目(即目标代码)。标代码)。单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束地址地址机器语言
5、机器语言汇编语言汇编语言形式形式二进制形式二进制形式十六进制形式十六进制形式2000H0111 0100 0000 0101B7405HMOV A , #05H2002H0010 0100 0000 1010B240AHADD A , #0AH2004H1000 0000 1111 1110B80FEHMOV 20H , A单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束汇编程序汇编程序容易让人们所识别、记忆和读写,容易让人们所识别、记忆和读写,但不能为机器直接识别执行但不能为机器直接识别执行001010010101010101010101机器语言程序
6、机器语言程序(即目标代码,(即目标代码,机器可以识别机器可以识别执行执行010101010101)010101010101单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束高级语言高级语言 是是面向过程和问题面向过程和问题并能独并能独立于机器的通用程序立于机器的通用程序设设计语言,是一种计语言,是一种接近人们自然语言和常用数学表达式接近人们自然语言和常用数学表达式的计算机语言的计算机语言。 高级语言编写的程序是不能被机器直接执行的,高级语言编写的程序是不能被机器直接执行的,但可以被常驻在内存或磁盘上的但可以被常驻在内存或磁盘上的解释程序或编译程序解释程序
7、或编译程序等等编译成目标代码后编译成目标代码后才能被机器所执行。才能被机器所执行。单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束独立于机器,可移植性强结构化设计,独立于机器,可移植性强结构化设计,程序清晰,但是占用存储空间大程序清晰,但是占用存储空间大编译程序编译程序001010010101010101010101机器语言程序机器语言程序(即目标代码,(即目标代码,机器可以识别机器可以识别执行执行010101010101)010101010101单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束4.1.2 格汇
8、编语言格式格汇编语言格式MCS51单片机汇编语言指令的标准格式如下单片机汇编语言指令的标准格式如下: 标号标号: 操作码操作码 目的操作数目的操作数 , 源操作数源操作数 ; 注释注释 例如例如: LOOP: ADD A, 10H ; (A)(A)+10H (1) 方括号方括号 表示该项是可选项表示该项是可选项, 可有可无。可有可无。 (2) 标号标号是用户设定的符号是用户设定的符号, 它实际代表该指令所在它实际代表该指令所在的的地址地址。标号。标号必须以字母开头必须以字母开头, 其后跟其后跟18个字母或个字母或数字数字, 并以并以“:”结尾。结尾。 单片机原理及其接口技术单片机原理及其接口技
9、术主目录主目录上一页上一页下一页下一页结结 束束 (3) 操作码操作码是用英文缩写的指令功能助记符。它确是用英文缩写的指令功能助记符。它确定了本条指令完成什么样的操作功能。定了本条指令完成什么样的操作功能。 如如: ADD表表示加法操作。示加法操作。 任何一条指令都必须有该助记符项任何一条指令都必须有该助记符项, 不得省略。不得省略。 (4) 目的操作数目的操作数提供操作的对象提供操作的对象, 并表示操作结果存并表示操作结果存放单元的地址放单元的地址, 它与操作码之间它与操作码之间必须以一个或几个必须以一个或几个空格分隔空格分隔。 如上例中如上例中A表示操作对象是累加器表示操作对象是累加器A的
10、的内容内容, 并指出操作结果又回送并指出操作结果又回送A存放。存放。 标号标号: 操作码操作码 目的操作数目的操作数 , 源操作数源操作数 ; 注释注释 例如例如: LOOP: ADD A, 10H ; (A)(A)+10H单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束(5) 源操作数源操作数指出的是一个源地址(或立即数)指出的是一个源地址(或立即数), 表示操作的对象或操作数来自何处。表示操作的对象或操作数来自何处。 它与目它与目的操作数之间要用的操作数之间要用“,”号隔开。号隔开。 (6) 注释部分注释部分是在编写程序时是在编写程序时, 为了增加
11、程序的为了增加程序的可可读性读性, 由用户拟写对该条指令或该段程序功能由用户拟写对该条指令或该段程序功能的说明。的说明。 它以分号它以分号“;”开头开头, 可以用中文、可以用中文、 英文或某些符号来表示英文或某些符号来表示, 显然它不存入计算机显然它不存入计算机, 只出现在源程序中。只出现在源程序中。 标号标号: 操作码操作码 目的操作数目的操作数 , 源操作数源操作数 ; 注释注释 例如例如: LOOP: ADD A, 10H ; (A)(A)+10H单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束操作数的操作数的5种合法形式种合法形式1、数字形式:
12、二进制、十进制、十六进制、数字形式:二进制、十进制、十六进制01001100B,20D,0A0H2、工作寄存器和特殊功能寄存器、工作寄存器和特殊功能寄存器 R0R7,ACC,SFR3、标号地址、标号地址MOV A , M;设设M已定义过已定义过4、带加减算符的表达式、带加减算符的表达式MOV A , M+15、采用、采用$符符JNB TF0 , $标号标号: 操作码操作码 目的操作数目的操作数 , 源操作数源操作数 ; 注释注释 例如例如: LOOP: ADD A, 10H ; (A)(A)+10H单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束u指令
13、性语句使指令性语句使CPU执行一个具体的操作。执行一个具体的操作。u伪指令伪指令不要求计算机做任何操作不要求计算机做任何操作,也没有对应的机器码也没有对应的机器码,不产生目标程序,不影响程序的执行不产生目标程序,不影响程序的执行,仅仅是,仅仅是能够帮助进行能够帮助进行汇编汇编的一些指令。的一些指令。4.1.3 汇编语言构成汇编语言构成指令性语句:指令性语句:111条指令的助记符语句。条指令的助记符语句。指示性语句:伪指令语句。指示性语句:伪指令语句。单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束15 常用伪指令常用伪指令 单片机汇编语言程序设计中,除
14、了使用指单片机汇编语言程序设计中,除了使用指令系统规定的指令外,还要用到一些伪指令。令系统规定的指令外,还要用到一些伪指令。伪指令又称指示性指令伪指令又称指示性指令,具有和指令,具有和指令类似的形类似的形式,但汇编时伪指令并不产生可执行的目标代式,但汇编时伪指令并不产生可执行的目标代码码,只是对汇编过程进行某种控制或提供某些,只是对汇编过程进行某种控制或提供某些汇编信息。汇编信息。下面对常用的伪指令作一简单介绍。下面对常用的伪指令作一简单介绍。单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束 用来指定用来指定程序或数据的起始位置程序或数据的起始位置;
15、给出一些给出一些连续存放数据的地址连续存放数据的地址; 为中间运算结果为中间运算结果保留一部分存储空间保留一部分存储空间; 为源程序中的为源程序中的符号和标号赋值符号和标号赋值; 表示表示源程序结束源程序结束等等。等等。 不同版本的汇编语言,伪指令的符号和含义可能有所不同,但基本用法不同版本的汇编语言,伪指令的符号和含义可能有所不同,但基本用法是相似的。是相似的。伪指令可以伪指令可以单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束伪指令列表伪指令列表1、 ORG设置目标程序起始地址伪指令设置目标程序起始地址伪指令2、 END结束汇编伪指令结束汇编伪指令
16、3、 DB定义字节伪指令定义字节伪指令4、 DW定义字伪指令定义字伪指令 5、 DS预留存储空间伪指令预留存储空间伪指令6、 EQU等值伪指令等值伪指令7、 DATA数据地址赋值数据地址赋值8、 BIT位地址定义伪指令位地址定义伪指令单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束18一、一、 汇编起始指令汇编起始指令 ORG 指令格式为指令格式为: ORG nn 该伪指令的该伪指令的功能是规定其后面的目标程序或功能是规定其后面的目标程序或数据块的起始地址。数据块的起始地址。它放在一段源程序它放在一段源程序(主程序、子程主程序、子程序序)或数据块的前面
17、,说明紧跟在其后的程序段或数据块或数据块的前面,说明紧跟在其后的程序段或数据块的起始地址就是的起始地址就是ORG后面给出的地址。例如:后面给出的地址。例如: ORG 2000HSTART:MOV A,#7FH 。单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束例如:例如: ORG 2000HSTART:MOV A,#7FH格式:格式:标号:标号: ORG 地址地址(十六进制表示十六进制表示)74H7FH2000H1FFFH2001H机器码:机器码:74 7FH单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束20
18、 例例: ORG 2000H MOV SP, 60H MOV R0, 2FH MOV R2, 0FFH ORG伪指令说明其后面程序的目标代码在存储器中存伪指令说明其后面程序的目标代码在存储器中存放的放的起始地址是起始地址是2000H, 即即 存储器地址存储器地址 程序代码程序代码 2000H 75 81 60 2003H 78 2F 2005H 7A FF 单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束21二、二、 汇编结束指令汇编结束指令END 指令格式指令格式: 标号标号: END 地址或标号地址或标号 格式中格式中标号以及标号以及END后面的地
19、址或标号可有可无后面的地址或标号可有可无。功能功能: 提供汇编结束标志。提供汇编结束标志。汇编程序遇到汇编程序遇到END后就停止汇后就停止汇编编, 对对 END以后的语句不予处理以后的语句不予处理, 故故END应放在程序的结应放在程序的结束处。束处。 单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束22三、等值指令三、等值指令EQU ( Equal )指令格式指令格式: 字符名称字符名称 EQU 数字或汇编符号数字或汇编符号功能功能: 使指令中的使指令中的字符名称字符名称等价于等价于给定的给定的数字或汇编符号数字或汇编符号。 特别注意:特别注意: 必须
20、先赋值后使用必须先赋值后使用, 同一个同一个标号只能赋值一次。标号只能赋值一次。 例例: PA EQU 8001H 即给字符即给字符PA赋值为赋值为8001H。 单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束书:书:131页。编程好习惯之一:上下对齐!页。编程好习惯之一:上下对齐! ORG 0500HAA EQU R1BB EQU 10HDELAY EQU 07E6H MOV R0, BB ;R0(10H) MOV A, AA ;A R1 LCALL DELAY ;调调07E6H子程序子程序单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一
21、页上一页下一页下一页结结 束束 该伪指令的功能与该伪指令的功能与EQU类似,可以类似,可以将将DATA右边表达右边表达式的式的 值赋给左边的字符名称值赋给左边的字符名称。表达式表达式可以是常数、地址可以是常数、地址标号或表达式,但标号或表达式,但不可以不可以是一个汇编符号(如是一个汇编符号(如R1等)。等)。 DATA和和EQU的主要区别是:的主要区别是:EQU中的字符名称是中的字符名称是先定义后使用,而先定义后使用,而DATA中的字符名称没有这种限制。中的字符名称没有这种限制。 定义定义8位数据用位数据用DATA,定义,定义16位数据用位数据用XDATA。格式:格式:字符名称字符名称 DAT
22、A 表达式表达式格式格式: 字符名称字符名称 EQU 数字或汇编符号数字或汇编符号四、数据赋值指令四、数据赋值指令DATA单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束25五、五、 定义字节指令定义字节指令DB指令格式指令格式: 标号标号: DB 8位二进制数表位二进制数表功能功能: 把把 8 位二进制数表位二进制数表依次存入从标号开始的连续的存依次存入从标号开始的连续的存储单元中。储单元中。 标号区段可有可无标号区段可有可无, DB指令之后的指令之后的 8 位二进制数表是位二进制数表是一个字节常数一个字节常数或或用逗号隔开的字节串用逗号隔开的字节串
23、, 也可以是用也可以是用引号括引号括起来的起来的ASCII码字符串码字符串 (一个一个 ASCII字符相当于一个字节字符相当于一个字节)。 单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束 ORG 2000HTAB1: DB 30H,8AH, 73 DB 01011010B, 5, A30H8AH49H5AH35H41H2000H2001H2002H2003H2004H2005H 由于由于ORG 2000H,所以,所以TAB1的地址为的地址为2000H,因此,以上,因此,以上伪指令经汇编后,将对伪指令经汇编后,将对2000H开始的连续存储单元赋值:开始
24、的连续存储单元赋值:;十进制数;十进制数73以十六进制数存放以十六进制数存放; 01011010B=5AH;35H是数字是数字5的的ASCII码码;41H是字母是字母A的的ASCII码码单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束27六、六、 定义字指令定义字指令DW指令格式指令格式: 标号标号: DW 16 位数据表位数据表功能:功能:与与DB相似相似, 区别区别仅在于从指定地址开始存放的是指仅在于从指定地址开始存放的是指令中的令中的 16 位数据位数据。每个。每个 16 位数据要占两个存储单元位数据要占两个存储单元, 高高8 位先存位先存, 低
25、低 8 位后存位后存, 这和这和MCS -51指令中的指令中的16位数据位数据存放顺序是一致的。存放顺序是一致的。 单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束 ORG 1500HTAB2: DW 1234H,80H,10 12H34H00H80H00H0AH1500H汇编以后:汇编以后:1501H1502H1503H1504H1505H单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束29 七七. 定义空间伪指令定义空间伪指令DS 格式:格式: 标号:标号: DS 表达式表达式 功能:功能:从指定的地址开始
展开阅读全文