[CH04]MCS-51汇编语言程序设计.ppt

上传人:s****8 文档编号:68612786 上传时间:2022-12-29 格式:PPT 页数:28 大小:237KB
返回 下载 相关 举报
[CH04]MCS-51汇编语言程序设计.ppt_第1页
第1页 / 共28页
[CH04]MCS-51汇编语言程序设计.ppt_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《[CH04]MCS-51汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《[CH04]MCS-51汇编语言程序设计.ppt(28页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第四章第四章第四章第四章 MCS-51MCS-51汇编语言汇编语言汇编语言汇编语言程序设计程序设计程序设计程序设计4.1 4.1 汇编语言程序设计概述汇编语言程序设计概述汇编语言程序设计概述汇编语言程序设计概述12/29/20221单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程l l汇编语言和高级语言的比较汇编语言和高级语言的比较汇编语言和高级语言的比较汇编语言和高级语言的比较4.1.1 4.1.1 汇编语言程序设计的基本步骤与方法汇编语言程序设计的基本步骤与方法汇编语言程序设计的基本步骤与方法汇编语言程序设计的基本步骤与方法汇编语言汇编语言高

2、级语言高级语言执行效率执行效率高高较低较低代码大小代码大小小小较大较大开发难度开发难度大大较小较小12/29/20222单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程1.1.汇编语言程序设计的基本步骤汇编语言程序设计的基本步骤汇编语言程序设计的基本步骤汇编语言程序设计的基本步骤 分析设计任务;分析设计任务;分析设计任务;分析设计任务;建立算法;建立算法;建立算法;建立算法;程序的总体设计及流程图的制定;程序的总体设计及流程图的制定;程序的总体设计及流程图的制定;程序的总体设计及流程图的制定;编写源程序;编写源程序;编写源程序;编写源程序;源程序

3、的汇编与调试;源程序的汇编与调试;源程序的汇编与调试;源程序的汇编与调试;编写文档资料。编写文档资料。编写文档资料。编写文档资料。4.1.1 4.1.1 汇编语言程序设计的基本步骤与方法汇编语言程序设计的基本步骤与方法汇编语言程序设计的基本步骤与方法汇编语言程序设计的基本步骤与方法12/29/20223单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程2.2.汇编语言程序设计的基本方法汇编语言程序设计的基本方法汇编语言程序设计的基本方法汇编语言程序设计的基本方法 了解汇编语言源程序的基本结构;了解汇编语言源程序的基本结构;了解汇编语言源程序的基本结

4、构;了解汇编语言源程序的基本结构;模块化的程序设计方法;模块化的程序设计方法;模块化的程序设计方法;模块化的程序设计方法;自顶向下逐步求精的程序设计方法;自顶向下逐步求精的程序设计方法;自顶向下逐步求精的程序设计方法;自顶向下逐步求精的程序设计方法;子程序化的程序设计方法。子程序化的程序设计方法。子程序化的程序设计方法。子程序化的程序设计方法。4.1.1 4.1.1 汇编语言程序设计的基本步骤与方法汇编语言程序设计的基本步骤与方法汇编语言程序设计的基本步骤与方法汇编语言程序设计的基本步骤与方法12/29/20224单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原

5、理与接口技术教程l l伪指令又称汇编程序控制指令,属说明性汇编指伪指令又称汇编程序控制指令,属说明性汇编指伪指令又称汇编程序控制指令,属说明性汇编指伪指令又称汇编程序控制指令,属说明性汇编指令,用来对汇编过程进行某种控制,或者对符号、令,用来对汇编过程进行某种控制,或者对符号、令,用来对汇编过程进行某种控制,或者对符号、令,用来对汇编过程进行某种控制,或者对符号、标号等赋值。伪指令和实际指令之间的不同是它标号等赋值。伪指令和实际指令之间的不同是它标号等赋值。伪指令和实际指令之间的不同是它标号等赋值。伪指令和实际指令之间的不同是它在汇编时不会生成机器指令代码,只是在形式上在汇编时不会生成机器指令

6、代码,只是在形式上在汇编时不会生成机器指令代码,只是在形式上在汇编时不会生成机器指令代码,只是在形式上和指令相似,因此称其为和指令相似,因此称其为和指令相似,因此称其为和指令相似,因此称其为“伪指令伪指令伪指令伪指令”;l l不同的单片机系列或开发系统所定义的伪指令不不同的单片机系列或开发系统所定义的伪指令不不同的单片机系列或开发系统所定义的伪指令不不同的单片机系列或开发系统所定义的伪指令不完全相同,程序设计者在使用这些工具进行编程完全相同,程序设计者在使用这些工具进行编程完全相同,程序设计者在使用这些工具进行编程完全相同,程序设计者在使用这些工具进行编程前应首先参考其用户手册。前应首先参考其

7、用户手册。前应首先参考其用户手册。前应首先参考其用户手册。MCS-51MCS-51型单片机汇编型单片机汇编型单片机汇编型单片机汇编语言中常见的伪指令包括:语言中常见的伪指令包括:语言中常见的伪指令包括:语言中常见的伪指令包括:4.1.2 4.1.2 汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介12/29/20225单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程1.1.程序段起始地址定义伪指令程序段起始地址定义伪指令程序段起始地址定义伪指令程序段起始地址定义伪指令ORGORGl l格式:

8、格式:格式:格式:ORG ORG l l功能:功能:功能:功能:指定在本伪指令之后的程序或数据表的地址为指定在本伪指令之后的程序或数据表的地址为指定在本伪指令之后的程序或数据表的地址为指定在本伪指令之后的程序或数据表的地址为 的值。的值。的值。的值。ORGORG仅能用于指定程序存储器的地址,表达仅能用于指定程序存储器的地址,表达仅能用于指定程序存储器的地址,表达仅能用于指定程序存储器的地址,表达式的结果为式的结果为式的结果为式的结果为1616位地址的值,可用二进制、十进制或十六进位地址的值,可用二进制、十进制或十六进位地址的值,可用二进制、十进制或十六进位地址的值,可用二进制、十进制或十六进制

9、数表示。制数表示。制数表示。制数表示。例如:例如:例如:例如:ORG 100ORG 100Start1:Start1:MOVMOV A,#30HA,#30H.ORG 100HORG 100HStart2:Start2:MOVMOV P1,#0FHP1,#0FH.4.1.2 4.1.2 汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介12/29/20226单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程2.2.汇编结束伪指令汇编结束伪指令汇编结束伪指令汇编结束伪指令ENDENDl l格式:格式

10、:格式:格式:ENDENDl l功能:功能:功能:功能:是源程序汇编结束的标志。在是源程序汇编结束的标志。在是源程序汇编结束的标志。在是源程序汇编结束的标志。在ENDEND之后所之后所之后所之后所写的任何内容写的任何内容写的任何内容写的任何内容(不管是指令、语句或其它内容不管是指令、语句或其它内容不管是指令、语句或其它内容不管是指令、语句或其它内容),汇编程序都不予理会。一个源程序只能有一个汇编程序都不予理会。一个源程序只能有一个汇编程序都不予理会。一个源程序只能有一个汇编程序都不予理会。一个源程序只能有一个ENDEND伪指令,在同时包括主程序和子程序的汇编伪指令,在同时包括主程序和子程序的汇

11、编伪指令,在同时包括主程序和子程序的汇编伪指令,在同时包括主程序和子程序的汇编源程序中,也只能有一个源程序中,也只能有一个源程序中,也只能有一个源程序中,也只能有一个ENDEND伪指令。因此,伪指令。因此,伪指令。因此,伪指令。因此,ENDEND伪指令应放在所有源程序的末尾。伪指令应放在所有源程序的末尾。伪指令应放在所有源程序的末尾。伪指令应放在所有源程序的末尾。4.1.2 4.1.2 汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介12/29/20227单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与

12、接口技术教程3.3.字节定义伪指令字节定义伪指令字节定义伪指令字节定义伪指令DBDBl l格式:格式:格式:格式:标号标号标号标号:DB DB l l功能:功能:功能:功能:在程序存储器中定义一个或多个字节的数据。表在程序存储器中定义一个或多个字节的数据。表在程序存储器中定义一个或多个字节的数据。表在程序存储器中定义一个或多个字节的数据。表达式或表达式串是指一个字节或用逗号分隔的多个字节的达式或表达式串是指一个字节或用逗号分隔的多个字节的达式或表达式串是指一个字节或用逗号分隔的多个字节的达式或表达式串是指一个字节或用逗号分隔的多个字节的数据。其含义是将表达式或表达式串所指定的数据存储到数据。其

13、含义是将表达式或表达式串所指定的数据存储到数据。其含义是将表达式或表达式串所指定的数据存储到数据。其含义是将表达式或表达式串所指定的数据存储到从标号开始的连续存储单元中。标号为可选项,它表示数从标号开始的连续存储单元中。标号为可选项,它表示数从标号开始的连续存储单元中。标号为可选项,它表示数从标号开始的连续存储单元中。标号为可选项,它表示数据存入程序存储器的起始地址。例如据存入程序存储器的起始地址。例如据存入程序存储器的起始地址。例如据存入程序存储器的起始地址。例如:ORG 1000HORG 1000HLabel1:Label1:DB 48HDB 48HDB 0A0HDB 0A0HLabel2

14、:Label2:DB Hi!,0DH,0AH,0,2*8DB Hi!,0DH,0AH,0,2*8.4.1.2 4.1.2 汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介12/29/20228单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程4.4.字定义伪指令字定义伪指令字定义伪指令字定义伪指令DWDWl l格式:格式:格式:格式:标号标号标号标号:DW DW l l功能:功能:功能:功能:在程序存储器中定义一个或多个字数据在程序存储器中定义一个或多个字数据在程序存储器中定义一个或多个字数据

15、在程序存储器中定义一个或多个字数据(16(16位位位位)。表达式或表达式串及标号的定义同表达式或表达式串及标号的定义同表达式或表达式串及标号的定义同表达式或表达式串及标号的定义同DBDB伪指令。例如伪指令。例如伪指令。例如伪指令。例如:ORG 2000HORG 2000HWords:Words:DWDW1234H,5678H1234H,5678H.4.1.2 4.1.2 汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介12/29/20229单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程5.

16、5.预留程序存储器空间伪指令预留程序存储器空间伪指令预留程序存储器空间伪指令预留程序存储器空间伪指令DS DS l l格式:格式:格式:格式:标号标号标号标号:DS DS l l功能:功能:功能:功能:在程序存储器中,以标号的值为起始地址,在程序存储器中,以标号的值为起始地址,在程序存储器中,以标号的值为起始地址,在程序存储器中,以标号的值为起始地址,保留表达式所指定字节的存储单元空间作为备用。保留表达式所指定字节的存储单元空间作为备用。保留表达式所指定字节的存储单元空间作为备用。保留表达式所指定字节的存储单元空间作为备用。ORG 2000HORG 2000HBase:Base:DSDS100

17、100.4.1.2 4.1.2 汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介12/29/202210单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程6.6.赋值伪指令赋值伪指令赋值伪指令赋值伪指令EQUEQU l l格式:格式:格式:格式:EQU EQU l l功能:功能:功能:功能:将由表达式指定的常数或特定的符号赋给将由表达式指定的常数或特定的符号赋给将由表达式指定的常数或特定的符号赋给将由表达式指定的常数或特定的符号赋给字符串,本条伪指令中字符串和表达式缺一不可。字符串,本条伪指令

18、中字符串和表达式缺一不可。字符串,本条伪指令中字符串和表达式缺一不可。字符串,本条伪指令中字符串和表达式缺一不可。ADDR1ADDR1EQU 1000HEQU 1000HLOOP1 LOOP1 EQU ADDR1EQU ADDR1REG1 REG1 EQU R0EQU R0.4.1.2 4.1.2 汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介12/29/202211单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程7.7.位地址定义伪指令位地址定义伪指令位地址定义伪指令位地址定义伪指令BI

19、TBIT l l格式:格式:格式:格式:BIT BIT l l功能:功能:功能:功能:将由位地址表达式指定的位地址赋给字符将由位地址表达式指定的位地址赋给字符将由位地址表达式指定的位地址赋给字符将由位地址表达式指定的位地址赋给字符串。位地址定义可有下列三种格式:串。位地址定义可有下列三种格式:串。位地址定义可有下列三种格式:串。位地址定义可有下列三种格式:FLAG1FLAG1BITBIT07H07H;直接使用位地址直接使用位地址直接使用位地址直接使用位地址FLAG2FLAG2BITBITTITI;使用专用位名称使用专用位名称使用专用位名称使用专用位名称FLAG3FLAG3BITBIT20H.7

20、20H.7;使用可位寻址字节使用可位寻址字节使用可位寻址字节使用可位寻址字节.位方式位方式位方式位方式4.1.2 4.1.2 汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介汇编语言设计常用伪指令简介12/29/202212第四章第四章第四章第四章 MCS-51MCS-51汇编语言汇编语言汇编语言汇编语言程序设计程序设计程序设计程序设计4.2 4.2 汇编语言程序设计举例汇编语言程序设计举例汇编语言程序设计举例汇编语言程序设计举例12/29/202213单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程l l和其它程序

21、一样,单片机程序总是由以下几种基和其它程序一样,单片机程序总是由以下几种基和其它程序一样,单片机程序总是由以下几种基和其它程序一样,单片机程序总是由以下几种基本的结构化程序块构成:本的结构化程序块构成:本的结构化程序块构成:本的结构化程序块构成:顺序程序;顺序程序;顺序程序;顺序程序;分支程序;分支程序;分支程序;分支程序;循环程序;循环程序;循环程序;循环程序;子程序调用;子程序调用;子程序调用;子程序调用;查表程序。查表程序。查表程序。查表程序。12/29/202214单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程l l顺序结构程序是指一种

22、无分支的直线执行程序,顺序结构程序是指一种无分支的直线执行程序,顺序结构程序是指一种无分支的直线执行程序,顺序结构程序是指一种无分支的直线执行程序,即程序的执行是按照程序计数器即程序的执行是按照程序计数器即程序的执行是按照程序计数器即程序的执行是按照程序计数器PCPC递增的顺序,递增的顺序,递增的顺序,递增的顺序,从第一条指令开始逐条、顺序进行的;从第一条指令开始逐条、顺序进行的;从第一条指令开始逐条、顺序进行的;从第一条指令开始逐条、顺序进行的;l l顺序结构程序在整个程序设计中所占的比例最大,顺序结构程序在整个程序设计中所占的比例最大,顺序结构程序在整个程序设计中所占的比例最大,顺序结构程

23、序在整个程序设计中所占的比例最大,往往用来解决一些简单的算术即逻辑运算问题,往往用来解决一些简单的算术即逻辑运算问题,往往用来解决一些简单的算术即逻辑运算问题,往往用来解决一些简单的算术即逻辑运算问题,主要使用数据传送、数据运算及逻辑运算类指令主要使用数据传送、数据运算及逻辑运算类指令主要使用数据传送、数据运算及逻辑运算类指令主要使用数据传送、数据运算及逻辑运算类指令构成;构成;构成;构成;l l具体实例请参见教材。具体实例请参见教材。具体实例请参见教材。具体实例请参见教材。4.2.1 4.2.1 顺序结构程序设计顺序结构程序设计顺序结构程序设计顺序结构程序设计12/29/202215单片机原

24、理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程l l分支程序是利用条件转移指令,使程序根据执行分支程序是利用条件转移指令,使程序根据执行分支程序是利用条件转移指令,使程序根据执行分支程序是利用条件转移指令,使程序根据执行过程中的条件或逻辑判断来改变程序执行的顺序,过程中的条件或逻辑判断来改变程序执行的顺序,过程中的条件或逻辑判断来改变程序执行的顺序,过程中的条件或逻辑判断来改变程序执行的顺序,从而选择不同的程序处理路径从而选择不同的程序处理路径从而选择不同的程序处理路径从而选择不同的程序处理路径;l l设计分支程序设计分支程序设计分支程序设计分支程序的

25、的的的关键问题是如何判断分支条件关键问题是如何判断分支条件关键问题是如何判断分支条件关键问题是如何判断分支条件;l lMCS-51MCS-51的指令系统提供了丰富的条件转移指令的指令系统提供了丰富的条件转移指令的指令系统提供了丰富的条件转移指令的指令系统提供了丰富的条件转移指令:累加器累加器累加器累加器A A判判判判0 0条件转移指令(条件转移指令(条件转移指令(条件转移指令(JZ/JNZJZ/JNZ)比较条件转移指令(比较条件转移指令(比较条件转移指令(比较条件转移指令(DJNZ/CJNEDJNZ/CJNE)位条件转移指令(位条件转移指令(位条件转移指令(位条件转移指令(JC/JNCJC/J

26、NC、JB/JNBJB/JNB、JBCJBC)等。)等。)等。)等。l l通过这些指令,就可以完成各种各样的条件判断。通过这些指令,就可以完成各种各样的条件判断。通过这些指令,就可以完成各种各样的条件判断。通过这些指令,就可以完成各种各样的条件判断。注意,执行一条条件判断指令时,只能形成两路注意,执行一条条件判断指令时,只能形成两路注意,执行一条条件判断指令时,只能形成两路注意,执行一条条件判断指令时,只能形成两路分支,如果需要多路分支,则需要进行多次判断。分支,如果需要多路分支,则需要进行多次判断。分支,如果需要多路分支,则需要进行多次判断。分支,如果需要多路分支,则需要进行多次判断。4.2

27、.2 4.2.2 分支结构程序设计分支结构程序设计分支结构程序设计分支结构程序设计12/29/202216单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程l l分支程序分支程序分支程序分支程序可进一步分为:可进一步分为:可进一步分为:可进一步分为:单分支程序:程序从两个分支中选择一个;单分支程序:程序从两个分支中选择一个;单分支程序:程序从两个分支中选择一个;单分支程序:程序从两个分支中选择一个;多分支程序:程序需要从两个以上的出口中选择一个;多分支程序:程序需要从两个以上的出口中选择一个;多分支程序:程序需要从两个以上的出口中选择一个;多分支程

28、序:程序需要从两个以上的出口中选择一个;l l具体实例请参见教材具体实例请参见教材具体实例请参见教材具体实例请参见教材4.2.2 4.2.2 分支结构程序设计分支结构程序设计分支结构程序设计分支结构程序设计12/29/202217单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程l l循环结构是控制程序多次执行同一功能的一种程循环结构是控制程序多次执行同一功能的一种程循环结构是控制程序多次执行同一功能的一种程循环结构是控制程序多次执行同一功能的一种程序结构;序结构;序结构;序结构;l l循环结构程序主要由循环结构程序主要由循环结构程序主要由循环结构

29、程序主要由4 4部分构成:部分构成:部分构成:部分构成:初始化部分;初始化部分;初始化部分;初始化部分;循环处理部分;循环处理部分;循环处理部分;循环处理部分;循环控制部分;循环控制部分;循环控制部分;循环控制部分;结束处理部分。结束处理部分。结束处理部分。结束处理部分。4.2.3 4.2.3 循环结构程序设计循环结构程序设计循环结构程序设计循环结构程序设计12/29/202218单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程l l循环结构中,循环初始化部分和结束处理部分一循环结构中,循环初始化部分和结束处理部分一循环结构中,循环初始化部分和结

30、束处理部分一循环结构中,循环初始化部分和结束处理部分一般只执行一次;般只执行一次;般只执行一次;般只执行一次;l l循环处理部分和循环控制部分称为循环体,视情循环处理部分和循环控制部分称为循环体,视情循环处理部分和循环控制部分称为循环体,视情循环处理部分和循环控制部分称为循环体,视情况可执行多次;况可执行多次;况可执行多次;况可执行多次;l l具体循环执行的次数由循环控制部分决定;具体循环执行的次数由循环控制部分决定;具体循环执行的次数由循环控制部分决定;具体循环执行的次数由循环控制部分决定;l l常见的循环控制方法有计数器控制和条件控制两常见的循环控制方法有计数器控制和条件控制两常见的循环控

31、制方法有计数器控制和条件控制两常见的循环控制方法有计数器控制和条件控制两种;种;种;种;l l循环结构还可进一步划分为:循环结构还可进一步划分为:循环结构还可进一步划分为:循环结构还可进一步划分为:单重循环结构;单重循环结构;单重循环结构;单重循环结构;多重循环结构。多重循环结构。多重循环结构。多重循环结构。4.2.3 4.2.3 循环结构程序设计循环结构程序设计循环结构程序设计循环结构程序设计12/29/202219单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程l l循环程序设计中需要注意的几个问题循环程序设计中需要注意的几个问题循环程序设计

32、中需要注意的几个问题循环程序设计中需要注意的几个问题:循环程序是在计数或条件控制变量的控制下执行的。循环应在控循环程序是在计数或条件控制变量的控制下执行的。循环应在控循环程序是在计数或条件控制变量的控制下执行的。循环应在控循环程序是在计数或条件控制变量的控制下执行的。循环应在控制条件不满足时退出,所以要避免从循环体外部直接跳转到循环制条件不满足时退出,所以要避免从循环体外部直接跳转到循环制条件不满足时退出,所以要避免从循环体外部直接跳转到循环制条件不满足时退出,所以要避免从循环体外部直接跳转到循环体内部,以免干扰循环计数器或判断条件,引起程序的混乱。体内部,以免干扰循环计数器或判断条件,引起程

33、序的混乱。体内部,以免干扰循环计数器或判断条件,引起程序的混乱。体内部,以免干扰循环计数器或判断条件,引起程序的混乱。多重循环是由外向内一层层进入的,但在结束时则是由内向外一多重循环是由外向内一层层进入的,但在结束时则是由内向外一多重循环是由外向内一层层进入的,但在结束时则是由内向外一多重循环是由外向内一层层进入的,但在结束时则是由内向外一层层退出的。所以在循环嵌套程序中,不要在外层程序使用跳转层层退出的。所以在循环嵌套程序中,不要在外层程序使用跳转层层退出的。所以在循环嵌套程序中,不要在外层程序使用跳转层层退出的。所以在循环嵌套程序中,不要在外层程序使用跳转指令直接跳转到内层循环体中。指令直

34、接跳转到内层循环体中。指令直接跳转到内层循环体中。指令直接跳转到内层循环体中。从循环体内部是可以使用跳转指令转移到循环体外或外层循环中,从循环体内部是可以使用跳转指令转移到循环体外或外层循环中,从循环体内部是可以使用跳转指令转移到循环体外或外层循环中,从循环体内部是可以使用跳转指令转移到循环体外或外层循环中,这实际上就是条件控制循环的结构。这实际上就是条件控制循环的结构。这实际上就是条件控制循环的结构。这实际上就是条件控制循环的结构。在设计循环程序时,首先要确定循环的结构,从各层循环执行的在设计循环程序时,首先要确定循环的结构,从各层循环执行的在设计循环程序时,首先要确定循环的结构,从各层循环

35、执行的在设计循环程序时,首先要确定循环的结构,从各层循环执行的顺序入手,依次分析各层循环的递进关系,最后确定各层循环的顺序入手,依次分析各层循环的递进关系,最后确定各层循环的顺序入手,依次分析各层循环的递进关系,最后确定各层循环的顺序入手,依次分析各层循环的递进关系,最后确定各层循环的控制计数器初值或执行条件,使其成为一个完整的循环程序。控制计数器初值或执行条件,使其成为一个完整的循环程序。控制计数器初值或执行条件,使其成为一个完整的循环程序。控制计数器初值或执行条件,使其成为一个完整的循环程序。4.2.3 4.2.3 循环结构程序设计循环结构程序设计循环结构程序设计循环结构程序设计12/29

36、/202220单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程l l什么是子程序什么是子程序什么是子程序什么是子程序可由其它程序段调用的、完成特定功能的程序段;可由其它程序段调用的、完成特定功能的程序段;可由其它程序段调用的、完成特定功能的程序段;可由其它程序段调用的、完成特定功能的程序段;l l使用子程序进行程序设计的特点使用子程序进行程序设计的特点使用子程序进行程序设计的特点使用子程序进行程序设计的特点增强了程序的结构化;增强了程序的结构化;增强了程序的结构化;增强了程序的结构化;减少程序的总代码量;减少程序的总代码量;减少程序的总代码量;减

37、少程序的总代码量;增加了诸如现场保护、参量传递等的开销。增加了诸如现场保护、参量传递等的开销。增加了诸如现场保护、参量传递等的开销。增加了诸如现场保护、参量传递等的开销。4.2.4 4.2.4 子程序设计子程序设计子程序设计子程序设计12/29/202221单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程l l主程序和子程序主程序和子程序主程序和子程序主程序和子程序被调用的程序称为子程序;被调用的程序称为子程序;被调用的程序称为子程序;被调用的程序称为子程序;调用子程序的程序称为主程序;调用子程序的程序称为主程序;调用子程序的程序称为主程序;调用

38、子程序的程序称为主程序;l l子程序的嵌套调用子程序的嵌套调用子程序的嵌套调用子程序的嵌套调用子程序执行过程中再次调用其它子程序的现象称为子子程序执行过程中再次调用其它子程序的现象称为子子程序执行过程中再次调用其它子程序的现象称为子子程序执行过程中再次调用其它子程序的现象称为子程序嵌套调用;程序嵌套调用;程序嵌套调用;程序嵌套调用;主程序调用子程序的下一条指令地址被称为断点;主程序调用子程序的下一条指令地址被称为断点;主程序调用子程序的下一条指令地址被称为断点;主程序调用子程序的下一条指令地址被称为断点;每个断点都必须进行现场保护;每个断点都必须进行现场保护;每个断点都必须进行现场保护;每个断

39、点都必须进行现场保护;MCS-51MCS-51单片机的现场保护是通过将数据压入堆栈的单片机的现场保护是通过将数据压入堆栈的单片机的现场保护是通过将数据压入堆栈的单片机的现场保护是通过将数据压入堆栈的方式完成的;方式完成的;方式完成的;方式完成的;由于堆栈空间有限,因此子程序嵌套层数不可过多。由于堆栈空间有限,因此子程序嵌套层数不可过多。由于堆栈空间有限,因此子程序嵌套层数不可过多。由于堆栈空间有限,因此子程序嵌套层数不可过多。4.2.4 4.2.4 子程序设计子程序设计子程序设计子程序设计12/29/202222单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理

40、与接口技术教程l l子程序调用过程子程序调用过程子程序调用过程子程序调用过程主程序执行主程序执行主程序执行主程序执行ACALLACALL指令或指令或指令或指令或LCALLLCALL指令调用子程序;指令调用子程序;指令调用子程序;指令调用子程序;CPUCPU执行保护断点工作,将紧接调用指令后的指令地执行保护断点工作,将紧接调用指令后的指令地执行保护断点工作,将紧接调用指令后的指令地执行保护断点工作,将紧接调用指令后的指令地址压入堆栈;址压入堆栈;址压入堆栈;址压入堆栈;CPUCPU执行被调用子程序;执行被调用子程序;执行被调用子程序;执行被调用子程序;被调用子程序执行被调用子程序执行被调用子程序

41、执行被调用子程序执行RETRET指令返回主程序;指令返回主程序;指令返回主程序;指令返回主程序;CPUCPU从堆栈弹出断点地址,主程序继续执行。从堆栈弹出断点地址,主程序继续执行。从堆栈弹出断点地址,主程序继续执行。从堆栈弹出断点地址,主程序继续执行。4.2.4 4.2.4 子程序设计子程序设计子程序设计子程序设计12/29/202223单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程l l子程序的参数传递(主要有三种方法)子程序的参数传递(主要有三种方法)子程序的参数传递(主要有三种方法)子程序的参数传递(主要有三种方法)(1)(1)寄存器或累

42、加器传递寄存器或累加器传递寄存器或累加器传递寄存器或累加器传递使用累加器使用累加器使用累加器使用累加器A A或寄存器或寄存器或寄存器或寄存器R0R7R0R7传递参数;传递参数;传递参数;传递参数;优点:传递效率高,执行速度快;优点:传递效率高,执行速度快;优点:传递效率高,执行速度快;优点:传递效率高,执行速度快;缺点:受寄存器个数限制,传递参数不多。缺点:受寄存器个数限制,传递参数不多。缺点:受寄存器个数限制,传递参数不多。缺点:受寄存器个数限制,传递参数不多。(2)(2)存储区传递存储区传递存储区传递存储区传递将待传输数据存于一个存储区中,将存储区地址传递将待传输数据存于一个存储区中,将存

43、储区地址传递将待传输数据存于一个存储区中,将存储区地址传递将待传输数据存于一个存储区中,将存储区地址传递给子程序;给子程序;给子程序;给子程序;优点:类似指针传递,效率大大提高,可传递可变长优点:类似指针传递,效率大大提高,可传递可变长优点:类似指针传递,效率大大提高,可传递可变长优点:类似指针传递,效率大大提高,可传递可变长参数,参数返回也可采用此方法;参数,参数返回也可采用此方法;参数,参数返回也可采用此方法;参数,参数返回也可采用此方法;缺点:无明显缺点。缺点:无明显缺点。缺点:无明显缺点。缺点:无明显缺点。4.2.4 4.2.4 子程序设计子程序设计子程序设计子程序设计12/29/20

44、2224单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程l l子程序的参数传递(主要有三种方法)子程序的参数传递(主要有三种方法)子程序的参数传递(主要有三种方法)子程序的参数传递(主要有三种方法)(3)(3)堆栈传递堆栈传递堆栈传递堆栈传递将待传输参数压入堆栈,调用子程序后,子程序移动将待传输参数压入堆栈,调用子程序后,子程序移动将待传输参数压入堆栈,调用子程序后,子程序移动将待传输参数压入堆栈,调用子程序后,子程序移动堆栈指针取得传入的参数;堆栈指针取得传入的参数;堆栈指针取得传入的参数;堆栈指针取得传入的参数;优点:传递效率高,执行速度快;

45、优点:传递效率高,执行速度快;优点:传递效率高,执行速度快;优点:传递效率高,执行速度快;缺点:受堆栈空间的限制,传递参数个数受限。缺点:受堆栈空间的限制,传递参数个数受限。缺点:受堆栈空间的限制,传递参数个数受限。缺点:受堆栈空间的限制,传递参数个数受限。4.2.4 4.2.4 子程序设计子程序设计子程序设计子程序设计12/29/202225单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程l l子程序调用时现场的保护和恢复子程序调用时现场的保护和恢复子程序调用时现场的保护和恢复子程序调用时现场的保护和恢复子程序在执行前,由于主程序在调用完子程序

46、后将继子程序在执行前,由于主程序在调用完子程序后将继子程序在执行前,由于主程序在调用完子程序后将继子程序在执行前,由于主程序在调用完子程序后将继续执行,因此应将子程序可能用到的资源,包括工作续执行,因此应将子程序可能用到的资源,包括工作续执行,因此应将子程序可能用到的资源,包括工作续执行,因此应将子程序可能用到的资源,包括工作寄存器寄存器寄存器寄存器R0R0R7R7、RAMRAM单元、单元、单元、单元、A A、DPTRDPTR、PSWPSW等都压等都压等都压等都压入堆栈保存,以免返回后主程序出错,这个过程称为入堆栈保存,以免返回后主程序出错,这个过程称为入堆栈保存,以免返回后主程序出错,这个过

47、程称为入堆栈保存,以免返回后主程序出错,这个过程称为现场保护;现场保护;现场保护;现场保护;在执行完子程序返回主程序之前,将被保护的内容恢在执行完子程序返回主程序之前,将被保护的内容恢在执行完子程序返回主程序之前,将被保护的内容恢在执行完子程序返回主程序之前,将被保护的内容恢复到原始单元中的过程称为现场恢复。复到原始单元中的过程称为现场恢复。复到原始单元中的过程称为现场恢复。复到原始单元中的过程称为现场恢复。4.2.4 4.2.4 子程序设计子程序设计子程序设计子程序设计12/29/202226单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程l

48、l子程序调用时现场的保护和恢复有两种方法:子程序调用时现场的保护和恢复有两种方法:子程序调用时现场的保护和恢复有两种方法:子程序调用时现场的保护和恢复有两种方法:(1)(1)由主程序负责现场保护和恢复由主程序负责现场保护和恢复由主程序负责现场保护和恢复由主程序负责现场保护和恢复.;主程序主程序主程序主程序PUSHPUSHPSWPSW;将子程序中用到的资源将子程序中用到的资源将子程序中用到的资源将子程序中用到的资源PUSHPUSHA A;入栈,保护现场入栈,保护现场入栈,保护现场入栈,保护现场PUSH PUSH B BMOV MOV PSW,#10HPSW,#10H;选择工作寄存器组选择工作寄存

49、器组选择工作寄存器组选择工作寄存器组2 2CALL CALL SubSub;由编译器决定如何调用由编译器决定如何调用由编译器决定如何调用由编译器决定如何调用POP POP B B;恢复现场恢复现场恢复现场恢复现场POP POP A APOP POP PSWPSW.4.2.4 4.2.4 子程序设计子程序设计子程序设计子程序设计12/29/202227单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程单片机原理与接口技术教程l l子程序调用时现场的保护和恢复有两种方法:子程序调用时现场的保护和恢复有两种方法:子程序调用时现场的保护和恢复有两种方法:子程序调用时现场的保护和恢

50、复有两种方法:(2)(2)由子程序负责现场保护和恢复由子程序负责现场保护和恢复由子程序负责现场保护和恢复由子程序负责现场保护和恢复ORG ORG xxxxxxxx;子程序子程序子程序子程序Sub:Sub:PUSH PUSH PSWPSW;将子程序中用到的资源将子程序中用到的资源将子程序中用到的资源将子程序中用到的资源PUSH PUSH A A;入栈,保护现场入栈,保护现场入栈,保护现场入栈,保护现场PUSH PUSH B BMOV MOV PSW,#10HPSW,#10H;选择工作寄存器组选择工作寄存器组选择工作寄存器组选择工作寄存器组2 2.;子程序执行自身功能子程序执行自身功能子程序执行自

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

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com