第三章4MCS51系列单片机指令系统_第1页
第三章4MCS51系列单片机指令系统_第2页
第三章4MCS51系列单片机指令系统_第3页
第三章4MCS51系列单片机指令系统_第4页
第三章4MCS51系列单片机指令系统_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章4MCS51系列单片机指令系 统 3.4.1 3.4.1 汇编语言简介汇编语言简介 l汇编语言又称符号语言,是用助记符、符号地址以及标号汇编语言又称符号语言,是用助记符、符号地址以及标号 等符号来编写程序的。等符号来编写程序的。 l汇编语言相对于机器语言而言,其比较直观、易懂、易记。汇编语言相对于机器语言而言,其比较直观、易懂、易记。 l汇编语言的源程序必须编译为机器语言才能被计算机执行,汇编语言的源程序必须编译为机器语言才能被计算机执行, 将汇编语言程序编译成机器语言的过程称为汇编过程。将汇编语言程序编译成机器语言的过程称为汇编过程。 l汇编过程有两种:人工汇编、计算机汇编。汇编过程有

2、两种:人工汇编、计算机汇编。 3.4 3.4 汇编语言程序设计汇编语言程序设计 第三章4MCS51系列单片机指令系 统 l伪指令在形式上是一条指令,但它并不译成机器语言,只伪指令在形式上是一条指令,但它并不译成机器语言,只 是为汇编时提供必须的控制信息命令。是为汇编时提供必须的控制信息命令。 1 1)定义伪指令)定义伪指令ORGORG 指令格式:指令格式: 标号:标号:ORG XXXXHORG XXXXH;注释;注释 说明:说明:ORGORG伪指令是程序起始地址,其中伪指令是程序起始地址,其中XXXXHXXXXH是下面程序存是下面程序存 放的起始地址,直到遇到下一个放的起始地址,直到遇到下一个

3、ORGORG指令指令。 3.4.2 MCS-513.4.2 MCS-51系列单片机伪指令系列单片机伪指令 第三章4MCS51系列单片机指令系 统 【例】下列程序存放在【例】下列程序存放在ROMROM中的情况。中的情况。 源程序源程序机器语言机器语言 ORG 2000HORG 2000H START:MOV A,#0START:MOV A,#074 0074 00 LCALL LOOP LCALL LOOP12 21 0012 21 00 MOV P0,A MOV P0,AF5 80F5 80 SJMP START SJMP START80 F780 F7 ORG 2100HORG 2100H

4、LOOP:ADD A,#08H LOOP:ADD A,#08H24 0824 08 RET RET2222 END END 地址地址ROM 2000H74 2001H00 2002H12 2003H21 2004H00 2005HF5 2006H80 2007H80 2008HF7 2100H24 2101H08 2102H22 第三章4MCS51系列单片机指令系 统 2 2)结束伪指令)结束伪指令ENDEND 指令格式指令格式: 标号:标号:ENDEND 说明:说明:ENDEND伪指令是一个结束标志,说明汇编程序已经结束。伪指令是一个结束标志,说明汇编程序已经结束。 在汇编时,遇到在汇编时,

5、遇到ENDEND伪指令即停止汇编,因此整个程序只能伪指令即停止汇编,因此整个程序只能 使用一个使用一个ENDEND伪指令,伪指令,ENDEND伪指令应放在整个程序的最后,否伪指令应放在整个程序的最后,否 则在则在ENDEND后面的指令就不能汇编。后面的指令就不能汇编。 第三章4MCS51系列单片机指令系 统 3)定义字节伪指令)定义字节伪指令DB 指令格式:指令格式: 标号:标号:DB DB 字节数据表字节数据表 说明:说明:DBDB伪指令是定义字节的伪指令,即从指定的地址单元伪指令是定义字节的伪指令,即从指定的地址单元 开始,定义若干个开始,定义若干个8 8位二进制数据,各数据之间用逗号间隔

6、,位二进制数据,各数据之间用逗号间隔, 如果是字符(如果是字符(ASCASC码),必须加引号。码),必须加引号。 第三章4MCS51系列单片机指令系 统 【例】下列程序存放在【例】下列程序存放在ROMROM中的情况。中的情况。 源程序源程序机器语言机器语言 ORG 2000H ORG 2000H START:MOV A,#02HSTART:MOV A,#02H74 0274 02 MOVC A, MOVC A, A+PCA+PC8383 RET RET2222 DB DB 41H,”4”,”A”41H,”4”,”A” 41 34 4141 34 41 END END 地址地址ROM 2000H

7、74 2001H02 2002H83 2003H22 2004H41 2005H34 2006H41 第三章4MCS51系列单片机指令系 统 4 4)定义字伪指令)定义字伪指令DWDW 指令格式:指令格式: 标号:标号:DW DW 字数据表字数据表 说明:说明:DWDW伪指令是定义字的伪指令,即从指定的地址单元开伪指令是定义字的伪指令,即从指定的地址单元开 始,定义若干个始,定义若干个1616位二进制数据,每个字占用两个单元,先位二进制数据,每个字占用两个单元,先 存高存高8 8位,再存低位,再存低8 8位。用法同位。用法同DBDB伪指令。伪指令。 第三章4MCS51系列单片机指令系 统 5

8、5)预留空间定义伪指令)预留空间定义伪指令DSDS 指令格式:指令格式: 标号:标号:DS DS 说明:说明:DSDS伪指令是定义存储区,伪指令是定义存储区, 即从标号指定的单元开始保留表即从标号指定的单元开始保留表 达式所代表的存储单元数。达式所代表的存储单元数。 【例】【例】 ORG 2000HORG 2000H DS 04H DS 04H MOV A,#02H MOV A,#02H RET RET 地址地址ROM 2000H 2001H 2002H 2003H 2004H74 2005H02 2006H22 保留保留 单元单元 第三章4MCS51系列单片机指令系 统 6 6)赋值伪指令)

9、赋值伪指令EQUEQU 指令格式指令格式: EQU EQU 说明:说明:EQUEQU伪指令是对标识符进行赋值,即将表达式的值赋伪指令是对标识符进行赋值,即将表达式的值赋 给标识符,在后面的程序中该标识符就代表表达式的值。本给标识符,在后面的程序中该标识符就代表表达式的值。本 指令只能赋值一次。指令只能赋值一次。 【例】【例】 ORG 2000HORG 2000H DATA EQU 2300H DATA EQU 2300H MOV DPTR,DATA MOV DPTR,DATA END END 执行上述程序,执行上述程序,DPTRDPTR2300H2300H 第三章4MCS51系列单片机指令系

10、统 7 7)赋值伪指令)赋值伪指令DLDL 指令格式:指令格式: DL DL 说明:说明:DLDL伪指令与伪指令与EQUEQU伪指令功能相同,区别在于伪指令功能相同,区别在于DLDL伪指令可伪指令可 以多次赋值,而以多次赋值,而EQUEQU伪指令只能赋值一次。伪指令只能赋值一次。 8 8)位定义伪指令)位定义伪指令BITBIT 指令格式:指令格式: BIT bit BIT bit 说明:说明:BITBIT伪指令是将位地址伪指令是将位地址bitbit赋值给标识符。前面已经用过。赋值给标识符。前面已经用过。 【例【例3-513-51】【例】【例3-563-56】 Y BIT P1.1Y BIT P

11、1.1 将位地址将位地址P1.1P1.1赋给标识符赋给标识符Y Y,凡在后面源程序指令中的,凡在后面源程序指令中的Y Y就当作就当作 P1.1P1.1使用。使用。 第三章4MCS51系列单片机指令系 统 3.4.3 3.4.3 程序设计的基本步骤程序设计的基本步骤 所谓程序,是指解决某个特定问题的指令序列或语句串。所谓程序,是指解决某个特定问题的指令序列或语句串。 使用某一计算机的指令或语句,编写解决某一问题的程序过程使用某一计算机的指令或语句,编写解决某一问题的程序过程 称为程序设计。称为程序设计。 l程序设计的步骤程序设计的步骤 1 1)分析课题与建立数学模型(分析问题)分析课题与建立数学

12、模型(分析问题) 2 2)确定算法)确定算法 3 3)设计流程图)设计流程图 4 4)编写源程序)编写源程序 5 5)汇编与上机调试)汇编与上机调试 第三章4MCS51系列单片机指令系 统 1. 程序设计的一般步骤程序设计的一般步骤 1)分析课题与建立数学模型(分析问题):分析课题与建立数学模型(分析问题):分析工作任分析工作任 务,明确要达到的工作目的、技术指标等。务,明确要达到的工作目的、技术指标等。 2) 确定算法:确定解决问题的算法。算法就是如何将实确定算法:确定解决问题的算法。算法就是如何将实 际问题转化成程序模块来处理,要对不同的算法进际问题转化成程序模块来处理,要对不同的算法进

13、行分析、比较,找出最适宜的算法。行分析、比较,找出最适宜的算法。 3) 画程序流程图:将解决问题的思路用框图形式表示出画程序流程图:将解决问题的思路用框图形式表示出 来。程序流程图和对应的源程序是等效的。来。程序流程图和对应的源程序是等效的。 框图符号的意思:如桶形框表示程序的开始或结束,框图符号的意思:如桶形框表示程序的开始或结束, 矩形框表示需要进行的工作,菱形框表示需要判断矩形框表示需要进行的工作,菱形框表示需要判断 的事情,指向线表示程序的流向等。的事情,指向线表示程序的流向等。 4) 分配内存工作单元,确定程序与数据的存放地址。分配内存工作单元,确定程序与数据的存放地址。 5) 编写

14、源程序。编写源程序。 6) 上机调试、修改源程序。上机调试、修改源程序。 第三章4MCS51系列单片机指令系 统 程序流程图框图程序流程图框图 第三章4MCS51系列单片机指令系 统 2. 程序设计的一般原则程序设计的一般原则 l1)按照尽可能使程序简短和缩短运行时间两个原则编写程)按照尽可能使程序简短和缩短运行时间两个原则编写程 序。序。 l2)应用程序一般都由一个主程序和多个子程序构成,即采)应用程序一般都由一个主程序和多个子程序构成,即采 用模块化的程序设计方法。用模块化的程序设计方法。 l3)每一功能模块或子程序都能完成一个明确的任务,实现)每一功能模块或子程序都能完成一个明确的任务,

15、实现 某个具体功能,如检测输入信号、码制转换、输出控制信号、某个具体功能,如检测输入信号、码制转换、输出控制信号、 发送数据、接收数据、延时、显示、打印等。发送数据、接收数据、延时、显示、打印等。 第三章4MCS51系列单片机指令系 统 3. 程序设计的一般技巧程序设计的一般技巧 l1)尽量采用循环结构和子程序结构。这样可以使程序的总)尽量采用循环结构和子程序结构。这样可以使程序的总 容量大大减少,提高程序的效率,节省内存。容量大大减少,提高程序的效率,节省内存。 l2)尽量少用无条件转移指令。这样可以使程序条理更加清)尽量少用无条件转移指令。这样可以使程序条理更加清 楚,从而减少错误。楚,从

16、而减少错误。 l3)对于通用的子程序,除了用于存放子程序入口参数的寄)对于通用的子程序,除了用于存放子程序入口参数的寄 存器外,子程序中用到的其他寄存器的内容应压入堆栈,即存器外,子程序中用到的其他寄存器的内容应压入堆栈,即 保护现场。一般不必把标志寄存器压入堆栈。保护现场。一般不必把标志寄存器压入堆栈。 l4)在中断处理程序中,除了要保护中断处理程序中用到的)在中断处理程序中,除了要保护中断处理程序中用到的 寄存器外,还要保护标志寄存器。寄存器外,还要保护标志寄存器。 l5)用累加器传递入口参数或返回参数比较方便,在子程序)用累加器传递入口参数或返回参数比较方便,在子程序 中,一般不必把累加

17、器内容压入堆栈。中,一般不必把累加器内容压入堆栈。 第三章4MCS51系列单片机指令系 统 3.4.4 3.4.4 程序设计举例程序设计举例 汇编语言程序具有四种结构形式,即顺序结构、循环结构、汇编语言程序具有四种结构形式,即顺序结构、循环结构、 分支结构和子程序结构。分支结构和子程序结构。 1. 顺序程序顺序程序 顺序程序是一种最简单、最基本的程序结构,又称为简单顺序程序是一种最简单、最基本的程序结构,又称为简单 程序或直线程序。程序按顺序一条一条地执行指令,程序程序或直线程序。程序按顺序一条一条地执行指令,程序 流向不变。流向不变。 2. 分支程序分支程序 分支程序是根据条件进行判断决定程

18、序的执行,满足条件分支程序是根据条件进行判断决定程序的执行,满足条件 则进行程序转移,不满足条件就顺序执行程序。判断是通则进行程序转移,不满足条件就顺序执行程序。判断是通 过条件转移指令实现的。分支程序又分为单分支结构和多过条件转移指令实现的。分支程序又分为单分支结构和多 分支结构。分支结构。 第三章4MCS51系列单片机指令系 统 3. 循环程序循环程序 循环程序是把需要多次重复执行的某段程序,利用循环程序是把需要多次重复执行的某段程序,利用 条件转移指令反复转向执行,可减小整个程序的条件转移指令反复转向执行,可减小整个程序的 长度,优化程序结构。长度,优化程序结构。 循环程序一般由循环初始

19、化、循环处理、循环控制循环程序一般由循环初始化、循环处理、循环控制 和循环结束四部分组成。和循环结束四部分组成。 4. 子程序子程序 子程序是指完成某一确定任务并能被其他程序反复子程序是指完成某一确定任务并能被其他程序反复 调用的程序段。调用的程序段。 使用子程序可以减小整个程序的长度,实现模块化使用子程序可以减小整个程序的长度,实现模块化 程序结构。程序结构。 第三章4MCS51系列单片机指令系 统 开始 处理 2 处理 4 处理 1 处理 3 初始化 结束 开始 循环控制 循环结束 循环处理 循环初始化 结束 Y N 条件满 足? 开始 处理 2 处理 4 处理 1 初始化 结束 Y N

20、处理 3 条件满足? 条件满足? 顺序程序流程图 循环程序流程图 分支程序流程图 第三章4MCS51系列单片机指令系 统 1 1 顺序程序设计方法顺序程序设计方法 顺序结构程序是最简单、最基本的程序。要设计出高质量顺序结构程序是最简单、最基本的程序。要设计出高质量 的程序需要掌握一定的技巧,需要熟悉指令系统,正确地的程序需要掌握一定的技巧,需要熟悉指令系统,正确地 选择指令,掌握程序设计的基本方法和技巧,以达到提高选择指令,掌握程序设计的基本方法和技巧,以达到提高 程序执行效率、减少程序长度、最大限度地优化程序的目程序执行效率、减少程序长度、最大限度地优化程序的目 的。的。 顺序程序的特点和设

21、计方法:顺序程序的特点和设计方法: l结构比较单一和简单,按程序编写的顺序依次执行,中间结构比较单一和简单,按程序编写的顺序依次执行,中间 没有任何分支,程序流向不变。没有任何分支,程序流向不变。 l数据传送指令使用得较多,没有控制转移类指令。数据传送指令使用得较多,没有控制转移类指令。 l作为复杂程序的某个组成部分,如循环结构程序中需多次作为复杂程序的某个组成部分,如循环结构程序中需多次 重复执行的某段程序重复执行的某段程序(称为循环处理称为循环处理)。 第三章4MCS51系列单片机指令系 统 1. 1. 顺序程序设计实例顺序程序设计实例 【例【例1】 有两个有两个6位位BCD码分别存放在片

22、内码分别存放在片内RAM 30H、31H、 32H单元和单元和40H、41H、42H单元内,求它们的和并将和存单元内,求它们的和并将和存 放到片内放到片内RAM 50H、51H、52H单元中。单元中。 解:设定片内解:设定片内RAM 30H单元存放高位,片内单元存放高位,片内RAM 32H单元存单元存 放低位,其他单元与之类同。放低位,其他单元与之类同。BCD码加法运算后,要用码加法运算后,要用DA 指令进行调整。指令进行调整。 第三章4MCS51系列单片机指令系 统 参考程序:参考程序: 程序程序 注释注释 ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV A,3

23、2H;低低2位被加数送入累加器位被加数送入累加器A ADD A,42H DA A ;BCD码调整码调整 MOV 52H,A;存放和的低存放和的低2位位 MOV A,31H;中中2位被加数送入累加器位被加数送入累加器A ADDC A,41H;加上低位的进位加上低位的进位 DA A ;BCD码调整码调整 MOV 51H,A;存放和的中存放和的中2位位 MOV A,30H;高高2位被加数送入累加器位被加数送入累加器A ADDC A,40H;加上中位的进位加上中位的进位 DA A ;BCD码调整码调整 MOV 50H,A;存放和的高存放和的高2位位 SJMP $ ;暂停暂停 END 第三章4MCS51

24、系列单片机指令系 统 2 2 分支程序设计方法分支程序设计方法 分支程序是根据程序的要求改变程序的执行顺序,分支程序是根据程序的要求改变程序的执行顺序, 并根据条件对程序的流向进行判断的程序结构。并根据条件对程序的流向进行判断的程序结构。 分支程序一般有两个或两个以上的出口。分支程序一般有两个或两个以上的出口。 分支程序又分为单分支和多分支结构分支程序又分为单分支和多分支结构。 第三章4MCS51系列单片机指令系 统 分支程序的特点和设计方法:分支程序的特点和设计方法: l程序中有转移指令包括无条件转移、条件转移程序中有转移指令包括无条件转移、条件转移 l单分支程序一般有一个入口、两个出口,一

25、般用无条单分支程序一般有一个入口、两个出口,一般用无条 件转移和条件转移指令来实现,结构形式有两种。件转移和条件转移指令来实现,结构形式有两种。 1)一种是当条件满足时,执行处理程序一种是当条件满足时,执行处理程序2,否则执行,否则执行 处理程序处理程序3。分支程序流程图如下图。分支程序流程图如下图(a)所示。所示。 2)另一种是当条件满足时,跳过处理程序另一种是当条件满足时,跳过处理程序2,直接执,直接执 行处理程序行处理程序3,否则顺序执行处理程序,否则顺序执行处理程序2和处理程序和处理程序3。 分支程序流程图如下图分支程序流程图如下图(b)所示。所示。 第三章4MCS51系列单片机指令系

26、 统 2 2 分支程序设计方法分支程序设计方法 开始 处理 2 处理 3 处理 1 初始化 结束 Y N 条件满足? (a) 分支程序流程图 (b) 分支程序流程图 第三章4MCS51系列单片机指令系 统 3 3 循环程序设计方法循环程序设计方法 循环程序结构用于进行大量有规律的重复性计算和判断。循环程序结构用于进行大量有规律的重复性计算和判断。 循环程序的结构一般包括以下几部分。循环程序的结构一般包括以下几部分。 l循环初始化循环初始化建立循环初始值,包括给工作寄存器建立循环初始值,包括给工作寄存器(或其或其 他存储单元他存储单元)设置计数初值、地址指针、数据块长度等。设置计数初值、地址指针

27、、数据块长度等。 l循环处理循环处理是需要多次重复执行的程序段。循环处理是循是需要多次重复执行的程序段。循环处理是循 环程序的核心,用于完成主要的计算和操作任务。环程序的核心,用于完成主要的计算和操作任务。 l循环控制循环控制是用条件转移指令控制循环是否继续。每循环是用条件转移指令控制循环是否继续。每循环 一次,根据循环结束条件进行一次判断;当满足条件时,停一次,根据循环结束条件进行一次判断;当满足条件时,停 止循环,继续执行其他程序;否则,再作循环。止循环,继续执行其他程序;否则,再作循环。 l循环处理和循环控制构成循环体,若循环程序的循环体内不循环处理和循环控制构成循环体,若循环程序的循环

28、体内不 再包含其他循环程序,则称为单重循环程序。若循环程序的再包含其他循环程序,则称为单重循环程序。若循环程序的 循环体内包含有其他循环程序,则称为多重循环程序,又称循环体内包含有其他循环程序,则称为多重循环程序,又称 为循环嵌套。为循环嵌套。 l循环结束循环结束用于存放循环程序的执行结果,同时恢复相关用于存放循环程序的执行结果,同时恢复相关 工作单元的初值。工作单元的初值。 第三章4MCS51系列单片机指令系 统 3 3 循环程序设计方法循环程序设计方法 循环程序的特点和设计方法:循环程序的特点和设计方法: l程序结构紧凑,占用存储单元较少,程序中间有分程序结构紧凑,占用存储单元较少,程序中

29、间有分 支,循环程序本质上是分支程序的一种特殊形式。支,循环程序本质上是分支程序的一种特殊形式。 lDJNZ指令使用得较多,凡是分支程序中可以使用指令使用得较多,凡是分支程序中可以使用 的控制转移类指令,循环程序一般都可以使用。的控制转移类指令,循环程序一般都可以使用。 循环控制常用的方法:循环控制常用的方法: 1)计数控制:判断循环次数是否达到预定次数。)计数控制:判断循环次数是否达到预定次数。 2)条件控制:判断终止条件是否成立。)条件控制:判断终止条件是否成立。 若在循环体执行过程中,不可能产生终止条件,则要永远执若在循环体执行过程中,不可能产生终止条件,则要永远执 行该循环体,称为死循环。行该循环体,称为死循环。 第三章4MCS51系列单片机指令系 统 先判断后处理 先处理后判断 两重循环 循环程序流程图 循环程序流程图 程序流程图 第三章4MCS51系列单片机指令系 统 【例】在内【例】在内RAM 30HRAM 30H3FH3FH存放存放 符号数,试统计中间负数的个符号数,试统计中间负数的个 数,将统计结果存放在数,将统计结果存放在40H40H单单 元中,试编制程序。元中,试编制程序。 解:判断负数的方法只要对最解:判断负数的方法只要对最 高进行判断,如果是高

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论