《片机原理及应用第二章.ppt》由会员分享,可在线阅读,更多相关《片机原理及应用第二章.ppt(125页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第2章章 MCS-51单片机指令系统与单片机指令系统与汇编语言程序设计汇编语言程序设计主要内容:主要内容:MCS-51单片机的寻址方式、指令系统、基本程单片机的寻址方式、指令系统、基本程序结构及汇编语言程序的开发与调试。序结构及汇编语言程序的开发与调试。重重 点:点:寻址方式、各种指令的应用、程序设计的规范、寻址方式、各种指令的应用、程序设计的规范、程序设计的思想及典型程序的理解和掌握。程序设计的思想及典型程序的理解和掌握。难难 点:点:控制转移、位操作指令的理解,各种指令的灵活控制转移、位操作指令的理解,各种指令的灵活应用,程序设计的基本方法以及针对具体的硬件应用,程序设计的基本方法以及针
2、对具体的硬件设计出最合理的软件设计出最合理的软件。要要 求求:抽时间自学抽时间自学KeilKeil,C51C51。第第2章章 MCS-51单片机指令系统与单片机指令系统与汇编语言程序设计汇编语言程序设计2.1 概述概述2.2 MCS-51单片机的寻址方式单片机的寻址方式2.3 MCS-51单片机的指令系统单片机的指令系统2.4 汇编语言及程序设计汇编语言及程序设计2.5 程序设计举例程序设计举例2.6 汇编语言的开发环境汇编语言的开发环境指令系统:指令系统:一台计算机所能识别、执行的指令的集合。一台计算机所能识别、执行的指令的集合。机器语言:机器语言:指令系统是一套控制计算机执行操作的二进制编
3、码,指令系统是一套控制计算机执行操作的二进制编码,称为机器语言。称为机器语言。特点:特点:机器语言指令是计算机惟一能直接识别机器语言指令是计算机惟一能直接识别和执行的指令。和执行的指令。汇编语言:汇编语言:利用指令助记符来描述指令系统的一套计算机指令。利用指令助记符来描述指令系统的一套计算机指令。特点:特点:计算机的指令系统一般都是利用汇编语言描述的,是由计算机的指令系统一般都是利用汇编语言描述的,是由计算机硬件设计所决定的。指令系统没有通用性。计算机硬件设计所决定的。指令系统没有通用性。2.1 2.1 概述概述 单片机一般是空机,未含任何系统软件。因此在第一次使单片机一般是空机,未含任何系统
4、软件。因此在第一次使用前,必须对其进行编程。用前,必须对其进行编程。指令:指令:计算机用于控制各功能部件完成某一指定动作的指示和命令。计算机用于控制各功能部件完成某一指定动作的指示和命令。识别指令的标志识别指令的标志指令的表示形式:指令的表示形式:(1)指令的二进制形式)指令的二进制形式 机器码、源程序的目标代码机器码、源程序的目标代码二进制。二进制。特点:特点:直接为计算机识直接为计算机识别和执行。读别和执行。读/写和记忆困难。写和记忆困难。(2)指令的十六进制形式指令的十六进制形式 指令的十六进代码需翻译成二进制代码才能被计算机识别和执行。指令的十六进代码需翻译成二进制代码才能被计算机识别
5、和执行。特点:特点:方便读,写和记忆困难。方便读,写和记忆困难。(3)指令助记符指令助记符 用英文字母、单词表征指令的功能。其源程序必须翻译成机器码用英文字母、单词表征指令的功能。其源程序必须翻译成机器码(目标代码)才能被计算机识别和执行。(目标代码)才能被计算机识别和执行。特点:特点:方便读方便读/写和记忆。写和记忆。2.1.1 汇编语言指令格式与伪指令汇编语言指令格式与伪指令2.1.2 指令的分类指令的分类2.1.3 指令中的常用符号指令中的常用符号2.1 2.1 概述概述 2.1.1 2.1.1 汇编语言指令格式与伪指令汇编语言指令格式与伪指令 1常用单位与术语常用单位与术语位位(bit
6、):计计算算机机所所能能表表示示的的最最小小的的、最最基基本本的的数数据据单单位位,指指一个二进制位。一个二进制位。字节(字节(Byte):):一个连续的一个连续的8位二进制数码,位二进制数码,1Byte=8bit。字(字(Word):):通常由通常由16位二进制数码组成,即位二进制数码组成,即1Word=2Byte。字长:字长:计算机一次处理二进制数码的位数。计算机一次处理二进制数码的位数。MCS-51系列单片机都是以系列单片机都是以Intel公司最早的典型公司最早的典型8位产品位产品8051为核心,增加了一定的功能部件后构成的。本章以为核心,增加了一定的功能部件后构成的。本章以8051为主
7、介绍为主介绍MCS-51系列单片机。系列单片机。2 2汇编语言指令格式汇编语言指令格式 指令格式:指令格式:指令的表示方式,规定了指令的长度和内部信息的安排。指令的表示方式,规定了指令的长度和内部信息的安排。标号标号:操作码操作码 操作数操作数,操作数操作数 ;注释注释 其中:其中:项是可选项。项是可选项。标标号号(符符号号地地址址):本本条条指指令令起起始始地地址址的的符符号号,代代表表该该条条指指令令在在程程序序编译时的具体地址。编译时的具体地址。操操作作码码(助助记记符符):英英文文字字母母、单单词词表表征征指指令令,一一般般是是对对应应英英文文的的缩缩写写。特特点点:规规定定了了指指令
8、令具具体体的的操操作作功功能能,描描述述指指令令的的操操作作性性质质,是是指指令语句的关键,是一条指令中不可缺少的内容。令语句的关键,是一条指令中不可缺少的内容。操作数:操作数:一个具体的数据,或存放数据的地址。一个具体的数据,或存放数据的地址。注注释释:针针对对某某指指令令而而添添加加的的说说明明性性文文字字,增增加加程程序序的的可可读读性性,不不产产生生可执行的目标代码。可执行的目标代码。伪指令:伪指令:汇编程序的控制命令。是程序员发给汇编程序的命令。汇编程序的控制命令。是程序员发给汇编程序的命令。功能:功能:设置符号值、保留和初始化存储空间、控制用户程序代设置符号值、保留和初始化存储空间
9、、控制用户程序代码的位置。码的位置。3伪指令伪指令 伪指令只出现在汇编前的源程序中,仅提供汇编用的某些控伪指令只出现在汇编前的源程序中,仅提供汇编用的某些控制信息,不产生可执行的目标代码,是制信息,不产生可执行的目标代码,是CPU不能实际执行的指令。不能实际执行的指令。(1)定位伪指令)定位伪指令ORG格式:格式:ORG n其中:其中:n绝对地址,十六进制数、标号或表达式。绝对地址,十六进制数、标号或表达式。功能:功能:规定编译后的机器代码存放的起始位置。规定编译后的机器代码存放的起始位置。规定:规定:在一个汇编语言源程序中允许存在多条定位伪指令,在一个汇编语言源程序中允许存在多条定位伪指令,
10、但每一个但每一个n值都应和前面生成的机器指令存放地址不重叠。值都应和前面生成的机器指令存放地址不重叠。例如:例如:ORG 1000H START:MOV A,#20H MOV B,#30H (2)结束汇编伪指令)结束汇编伪指令END格式:格式:标号标号:END 表达式表达式功功能能:源源程程序序的的汇汇编编到到此此结结束束,其其后后的的任任何何内内容容不不予予理理睬睬。放放在汇编语言源程序的末尾。在汇编语言源程序的末尾。(3)赋值伪指令)赋值伪指令EQU格式:格式:字符名称字符名称x EQU 赋值项赋值项n功功能能:将将赋赋值值项项n的的值值赋赋予予字字符符名名称称x。程程序序中中凡凡出出现现
11、该该字字符符名名称称x就等同于该赋值项就等同于该赋值项n,其值在整个程序中有效。其值在整个程序中有效。规规定定:在在使使用用时时,必必须须先先赋赋值值后后使使用用。赋赋值值项项n可可以以是是常常数数、地地址、标号或表达式址、标号或表达式。“字符名称字符名称”与与“标号标号”表示形式的区别:表示形式的区别:“字符名称字符名称”后无冒号,而后无冒号,而“标号标号”后面有冒号。后面有冒号。(4)定义字节伪指令)定义字节伪指令DB格式:格式:标号标号:DB x1,x2,xn功功能能:将将8位位数数据据(数数据据组组)x1,x2,xn顺顺序序存存放放在在从从当当前前程程序序存储器地址开始的存储单元中。存
12、储器地址开始的存储单元中。规规定定:xi8位位常常数数(00HFFH)、ASCII码码(字字符符在在单单引引号号内内)、表表达达式式,字字符符串串(在在单单引引号号内内,长长度度80个个字字符符)。两两个个数据之间用逗号数据之间用逗号“,”分隔。分隔。(5)定义双字节伪指令)定义双字节伪指令DW格式:格式:标号标号:DW x1,x2,xn功能:功能:将双字节数据(数据组)顺序存放在从标号指定地址单将双字节数据(数据组)顺序存放在从标号指定地址单元开始的存储单元中。元开始的存储单元中。规定:规定:xi16位数值常数,先存高位数值常数,先存高8位入低位地址单元。位入低位地址单元。(6)预留存储空间
13、伪指令)预留存储空间伪指令DS格式:格式:标号标号:DS n功能:功能:从标号指定地址单元开始,预留从标号指定地址单元开始,预留n个存储单元。个存储单元。规定:规定:汇编时不对预留存储单元赋值。汇编时不对预留存储单元赋值。n数据,表达式。数据,表达式。注意:注意:DB、DW、DS伪指令只能对程序存储器进行赋值和初始伪指令只能对程序存储器进行赋值和初始化工作,不能用来对数据存储器进行赋值和初始化工作。化工作,不能用来对数据存储器进行赋值和初始化工作。(7)定义位地址符号伪指令)定义位地址符号伪指令BIT格式:格式:字符名称字符名称x BIT 位地址位地址n功能:功能:将位地址将位地址n的值赋予字
14、符名称的值赋予字符名称x。规定:规定:程序中凡出现该字符名称程序中凡出现该字符名称x就代表该位地址。位地址就代表该位地址。位地址n绝对绝对地址,符号地址。地址,符号地址。(8)数据地址赋值伪指令)数据地址赋值伪指令DATA格式:格式:字符名称字符名称x DATA 表达式表达式n功能:功能:把表达式把表达式n的值赋值给左边的字符名称的值赋值给左边的字符名称x。规定:规定:n数据或地址,包含所定义的数据或地址,包含所定义的“字符名称字符名称x”在内的表达式,在内的表达式,但不能为汇编符号。但不能为汇编符号。DATA与与EQU的主要区别是:的主要区别是:EQU必须先定义后使用,必须先定义后使用,DA
15、TA无限无限制。制。EQU 源程序的开头,源程序的开头,DATA源程序的开头或末尾。源程序的开头或末尾。2.1.2 指令的分类指令的分类 MCS-51指令系统有指令系统有111条指令条指令,分类如下:,分类如下:1.按指令字节数分类按指令字节数分类 单字节单字节(49条条),双字节,双字节(46条条),3字节字节(16条条)。2.按指令执行时间分类按指令执行时间分类 单机器周期指令(单机器周期指令(65条)、双机器周期指令(条)、双机器周期指令(44条)和四机条)和四机器周期指令(器周期指令(2条)。条)。3.按功能分类按功能分类 数据传送指令(数据传送指令(29条)、算术操作指令(条)、算术
16、操作指令(24条)、逻辑操作条)、逻辑操作指令(指令(24条)、控制转移指令(条)、控制转移指令(17条)和位操作指令(条)和位操作指令(17条)。条)。4.指令的字节数:指令的字节数:指令操作码指令操作码1字节;直接地址字节;直接地址1字节,字节,8位数据位数据1字节,字节,16位数位数据据2字节;操作数中的字节;操作数中的A、B、R0R7、C、Ri、DPTR、A+DPTR、A+PC等均隐含在操作码中。等均隐含在操作码中。(1)1字节指令(单字节指令)字节指令(单字节指令)指令中只有操作码。指令中只有操作码。NOP RET 操作数的寄存器号隐含在指令码中。操作数的寄存器号隐含在指令码中。MO
17、V A,Rn;指令码指令码11101 rrr INC DPTR;指令码指令码A3H(2)2字节指令(双字节指令)字节指令(双字节指令)指令的格式:指令的格式:操作码操作码 操作数操作数(操作码为第一字节,操作数为第二字节操作码为第一字节,操作数为第二字节)MOV A,#data;指令码为指令码为0111 0100#data(3)3字节指令(三字节指令)字节指令(三字节指令)指令的格式:指令的格式:操作码操作码 目的操作数,源操作数目的操作数,源操作数(三字节:操作码,目的操三字节:操作码,目的操作数,源操作数作数,源操作数)ANL direct,#data;指令码指令码0101 0011 di
18、rect#dataSWAP A23221232112MOV DPTR,#1000HMOVA,20HANLA,#0FHMOVC A,A+DPTRMOV21H,AMOVSP,#60HANLA,#0F0HMOVC A,A+PCMOV22H,ASJMP 注:注:部分特殊功能寄存器部分特殊功能寄存器SFR占一个字节。占一个字节。2.1.3 指令中的常用符号指令中的常用符号 MCS-51指令系统共有指令系统共有44种助记符,类似于种助记符,类似于8086。常用符号如下:。常用符号如下:Rn(n=07):):工作寄存器组工作寄存器组R0R7中的任一个寄存器。中的任一个寄存器。Ri(i=0或或1):):工作寄
19、存器组中用于间址的寄存器工作寄存器组中用于间址的寄存器R0,R1。#data:8位直接参与操作的立即数。位直接参与操作的立即数。#data16:16位直接参与操作的立即数。位直接参与操作的立即数。direct:片内片内RAM的的8位单元地址。位单元地址。addr11:11位目的地址,主要用于位目的地址,主要用于ACALL和和AJMP指令中。指令中。addr16:16位目的地址,主要用于位目的地址,主要用于LCALL和和LJMP指令中。指令中。rel:8位位二二进进制制地地址址偏偏移移量量(补补码码),取取值值范范围围为为 128+127,主主要要用于相对转移指令,以形成转移的目的地址。用于相对
20、转移指令,以形成转移的目的地址。DPTR:数据指针,用于寄存器间接寻址方式和变址寻址方式数据指针,用于寄存器间接寻址方式和变址寻址方式。bit:片内片内RAM的位寻址区、可以位寻址的的位寻址区、可以位寻址的SFR的位地址。的位地址。A(或(或ACC):):累加器。累加器。B:B寄存器。寄存器。C:PSW中的进位标志位中的进位标志位Cy。:用于间接寻址寄存器指针的前缀标志。用于间接寻址寄存器指针的前缀标志。$:当前指令的地址。当前指令的地址。/:在位操作指令中,对该位先求反后再参与操作。在位操作指令中,对该位先求反后再参与操作。(X):由由X所指定的某寄存器或某单元中的内容。所指定的某寄存器或某
21、单元中的内容。(X):由由X间接寻址单元中的内容。间接寻址单元中的内容。:指令的操作结果是将箭头右边的内容传送到左边。指令的操作结果是将箭头右边的内容传送到左边。:指令的操作结果是将箭头左边的内容传送到右边。指令的操作结果是将箭头左边的内容传送到右边。、:表示逻辑或、与、异或。表示逻辑或、与、异或。寻址方式:寻址方式:说明操作数所在地址的方法。或指令按地址获得操作说明操作数所在地址的方法。或指令按地址获得操作数的方式。数的方式。计计算算机机在在设设计计时时决决定定了了它它的的寻寻址址方方式式,寻寻址址方方式式越越多多,计计算算机的灵活性越强,指令系统也就越复杂。机的灵活性越强,指令系统也就越复
22、杂。MCS-51单片机的指令系统提供了七种寻址方式,分别为:单片机的指令系统提供了七种寻址方式,分别为:立立即即寻寻址址、直直接接寻寻址址、寄寄存存器器寻寻址址、寄寄存存器器间间接接寻寻址址、变变址址寻址、相对寻址和位寻址。寻址、相对寻址和位寻址。一条指令可能含多种寻址方式。一条指令可能含多种寻址方式。2.2 MCS-512.2 MCS-51单片机的寻址方式单片机的寻址方式 计算机执行程序实际上是在不断寻找操作数并进行操作的过程。计算机执行程序实际上是在不断寻找操作数并进行操作的过程。2.2.1 立即寻址立即寻址 定义:定义:立即参与操作的数据(立即数)直接写在指令中。立即参与操作的数据(立即
23、数)直接写在指令中。特特点点:指指令令中中直直接接含含有有所所需需8位位/16位位的的操操作作数数。处处于于指指令令的的第第二二字节和第三字节的位置上。字节和第三字节的位置上。立即数表示方法:立即数表示方法:#data8,#data16。MOV A,#2DH ;(A)立即数立即数2DH MOV A,2DH ;(A)内部内部RAM的的2DH单元内容单元内容 ADD A,#05H ;(A)(A)+立即数立即数 05H MOV DPTR,#1000H ;(DPTR)立即数立即数 1000H2.2.2 直接寻址直接寻址定义:定义:操作数的地址直接写在指令中。操作数的地址直接写在指令中。特特点点:指指令
24、令中中含含有有操操作作数数的的地地址址指指出出了了参参与与操操作作的的数数据据所所存存放放在存储器单元(位)的地址。在存储器单元(位)的地址。寻址范围:寻址范围:ROM、片内片内RAM、SFR和位地址空间。和位地址空间。MOV R1,2DH;(R1)(2DH)MOV 30H,4AH;(30H)(4AH)注意:注意:MOV A,SP ;(A)(SP)MOV A,81H ;(A)(SP)MOV P1,#5AH ;(P1)(#5AH)MOV 90H,#5AH ;(P1)(#5AH)2.2.3 寄存器寻址寄存器寻址定义:定义:操作数存放在操作数存放在MCS-51内部的内部的Rn或部分专用寄存器中。或部
25、分专用寄存器中。特点:特点:指令中指出的寄存器的内容作为操作数。指令中指出的寄存器的内容作为操作数。寻寻址址范范围围:四四组组通通用用寄寄存存器器Rn(R0R7)、部部分分专专用用寄寄存存器器(A,B,DPTR,Cy)。)。MOV A,R7 ;(A)(R7)MOV 30H,B ;(;(30H)(B)MOV DPTR,#1000H ;(DPTR)1000H存放操作数的寄存器在指令代码中不占据单独的一个字节,存放操作数的寄存器在指令代码中不占据单独的一个字节,嵌入(隐含)到操作码字节中。嵌入(隐含)到操作码字节中。2.2.4 寄存器间接寻址(寄存器间址)寄存器间接寻址(寄存器间址)定义:定义:指令
26、的寄存器中存放的是操作数据的单元地址。指令的寄存器中存放的是操作数据的单元地址。特点:特点:二次寻找操作数地址的寻址方式。二次寻找操作数地址的寻址方式。寻址范围:寻址范围:内部内部RAM低低128B(只能用只能用R0或或R1),),外部外部RAM(R0、R1,DPTR)。)。MOV R1,#30H ;(R1)立即数立即数30H MOV R1,#0FH ;(30H)立即数立即数0FH MOV A,R1 ;(A)(30H)=立即数立即数0FH寄存器间接寻址,寄存器前边必须加前缀符号寄存器间接寻址,寄存器前边必须加前缀符号“”,不能用于寻址特殊功能寄存器不能用于寻址特殊功能寄存器SFR。2.2.5
27、变址寻址(基址加变址寄存器间接寻址)变址寻址(基址加变址寄存器间接寻址)定定义义:操操作作数数存存放放在在变变址址寄寄存存器器(累累加加器器A)和和基基址址寄寄存存器器(DPTR或或PC)相加形成的)相加形成的16位地址单元中。位地址单元中。特特点点:单单字字节节指指令令,指指令令操操作作码码中中隐隐含含基基址址寄寄存存器器和和变变址址寄寄存存器器。执执行行时时,基基地地址址+偏偏移移地地址址操操作作数数地地址址操操作作数数完完成成相相应的操作。应的操作。寻址范围:寻址范围:ROM,主要用于查表性质的访问。,主要用于查表性质的访问。注意:注意:A中存放的偏移地址的范围为中存放的偏移地址的范围为
28、00HFFH(无符号数)。(无符号数)。MCS-51单片机共有以下三条变址寻址指令:单片机共有以下三条变址寻址指令:MOVC A,A+PC ;(A)(A)+(PC)+1)MOVC A,A+DPTR ;(A)(A)+(DPTR)JMP A+DPTR ;(PC)(A)+(DPTR)如如:(DPTR)=1234H,(,(A)=50H,ROM的(的(1284H)=65H。执行执行MOVC A,A+DPTR 过程:过程:(A)+(DPTR)=1284H(1284H)=65H(A)=65H 2.2.6 相对寻址相对寻址定定义义:将将程程序序计计数数器器PC的的当当前前值值(取取出出本本条条指指令令后后的的
29、PC值值)与与+rel新的转移目标地址。新的转移目标地址。特点:特点:用于程序的相对转移,易于生成浮动代码。用于程序的相对转移,易于生成浮动代码。如:如:SJMP rel ;(PC)(PC)+2+rel 双字节指令双字节指令 相对转移指令的目的地址指令地址指令字节数偏移量相对转移指令的目的地址指令地址指令字节数偏移量寻址范围:寻址范围:ROM。相对地址偏移量(相对地址偏移量(rel):):8位二进制补码,范围为位二进制补码,范围为 128127。在程序中,在程序中,“rel”通常用通常用“标号标号”代替。代替。分析指令分析指令SJMP 06H的执行过程及执行结果。的执行过程及执行结果。执行的过
30、程如下图所示。执行的过程如下图所示。2.2.7 位寻址位寻址定义:定义:指令中给出的操作数是一个可单独寻址的位地址。指令中给出的操作数是一个可单独寻址的位地址。特特点点:直直接接寻寻址址方方式式的的一一种种,对对8位位二二进进制制数数中中的的某某一一位位的的地地址址进行操作。进行操作。寻址范围:寻址范围:片内片内RAM低低128B中位寻址区、部分中位寻址区、部分SFR(83位)。位)。可位寻址的位地址的表示形式:可位寻址的位地址的表示形式:(1 1)直接使用位地址。)直接使用位地址。如:如:MOV 00H,C ;(00H)(Cy)其中:其中:00H是片内是片内RAM中中20H地址单元的第地址单
31、元的第0位。位。(2)字节地址加位序号的形式。)字节地址加位序号的形式。如:如:MOV 20H.0,C ;(20H.0)(Cy)其中:其中:20H.0是片内是片内RAM中中20H地址单元的第地址单元的第0位。位。(3)位的符号地址(位名称)的形式。)位的符号地址(位名称)的形式。利用部分特殊功能寄存器各位的特定名称来访问该位。利用部分特殊功能寄存器各位的特定名称来访问该位。如:如:ANL C,P ;(C)(C)(P)其中:其中:P是是PSW的第的第0位,位,C是是PSW的第的第7位。位。(4)字节符号地址(字节名称)加位序号的形式。)字节符号地址(字节名称)加位序号的形式。利用部分特殊功能寄存
32、器名称加位序号形式来访问该位。利用部分特殊功能寄存器名称加位序号形式来访问该位。如:如:CPL PSW.6 ;(AC)()其中:其中:PSW.6表示该位是表示该位是PSW的第的第6位。位。例题例题1 指出下列指令中源操作数的寻址方式指出下列指令中源操作数的寻址方式寄存器寻址寄存器寻址立即寻址立即寻址寄存器间接寻址寄存器间接寻址直接寻址直接寻址变址寻址变址寻址相对寻址相对寻址位寻址位寻址MOV A,R1 ;(A)(R1)ADD A,#05H ;(A)(A)+立即数立即数 05H MOV A,R1 ;(A)(R1)MOV 30H,4AH ;(30H)(4AH)MOVC A,A+DPTR;(A)(A
33、)+(DPTR)SJMP LP ;(PC)(PC)+2+偏移量偏移量MOV 65H,C ;(65H)(Cy)2.3 MCS-512.3 MCS-51单片机的指令系统单片机的指令系统 MCS-51指指令令系系统统:44种种助助记记符符,33种种功功能能,51种种操操作作,111条指令(指令助记符与操作数的各种寻址方式的结合)。条指令(指令助记符与操作数的各种寻址方式的结合)。MCS-51单片机指令系统按其功能可分为五类:单片机指令系统按其功能可分为五类:数据传送类指令数据传送类指令 算术运算类指令算术运算类指令 逻辑运算和移位类指令逻辑运算和移位类指令 控制转移类指令控制转移类指令 位操作类指令
34、位操作类指令学习指令系统时,应注意:学习指令系统时,应注意:(1)指令的格式、功能;)指令的格式、功能;(2)操作码的含义,操作数的表示方法;)操作码的含义,操作数的表示方法;(3)寻址方式,源、目的操作数的范围;)寻址方式,源、目的操作数的范围;(4)对标志位的影响;)对标志位的影响;(5)指令的适用范围;)指令的适用范围;(6)正确估算指令的字节数。)正确估算指令的字节数。操作码操作码1字节。操作数中:字节。操作数中:直接地址直接地址derict1字节,字节,#data1字节,字节,#data16两字节;两字节;A、B、R0R7、C、Ri、DPTR、A+DPTR、A+PC等等均隐含在操作码
35、中。特殊功能寄存器均隐含在操作码中。特殊功能寄存器SFR一个字节。一个字节。2.3 MCS-512.3 MCS-51单片机的指令系统单片机的指令系统2.3.1 数据传送类指令(数据传送类指令(29条)条)2.3.2 算术运算类指令(算术运算类指令(24条)条)2.3.3 逻辑运算及移位类指令(逻辑运算及移位类指令(24条)条)2.3.4 控制转移类指令(控制转移类指令(17条)条)2.3.5 位操作(布尔操作)类指令(位操作(布尔操作)类指令(17条)条)2.3.1 数据传送指令数据传送指令 最基本、最主要的操作指令。最基本、最主要的操作指令。29条,可分为五类:条,可分为五类:内部内部RAM
36、间传送:间传送:(MOV16条)条)外部外部RAM与累加器间传送与累加器间传送:(MOVX4条)条)ROM向累加器传送:向累加器传送:(MOVC2条)条)数据交换:数据交换:(SWAP,XCH,XCHD5条)条)堆栈操作:堆栈操作:(PUSH,POP2条)条)寻址范围:寻址范围:累加器累加器A、片内、片内RAM、SFR、片外、片外RAM、ROM。功能:功能:(目的地址)(目的地址)(源地址),(源地址),表示为表示为:源地址单元的内容不变。源地址单元的内容不变。对标志位的影响:对标志位的影响:除以累加器除以累加器A为目的操作数的数据传送指令对为目的操作数的数据传送指令对P标志标志位有影响外,其
37、余均不影响标志位。位有影响外,其余均不影响标志位。1内部内部RAM数据传送指令(数据传送指令(16条)条)格式:格式:MOV ,范围:范围:片内片内RAM、SFR中。中。指令形式:指令形式:按目的操作数可将内部数据传送指令分为五类。按目的操作数可将内部数据传送指令分为五类。(1)以累加器)以累加器A为目的操作数(为目的操作数(4条)条)MOV A,其中:其中:包括包括Rn、Ri、direct、#data。影响影响P标志。标志。如:如:MOV A,30H(A)(30H)(2)以工作寄存器)以工作寄存器Rn为目的操作数(为目的操作数(3条)条)MOV Rn,其中:其中:包括包括A、direct、#
38、data。如:如:MOV R7,#30H(R7)#30H(3 3)以直接地址单元为目的操作数()以直接地址单元为目的操作数(5 5条)条)MOV direct,其中:其中:包括包括A、Rn、Ri、direct、#data。如:如:MOV 30H,20H;(30H)(20H)(4 4)以间址寄存器以间址寄存器 RiRi为目的操作数(为目的操作数(3 3条)条)MOV Ri ,其中:其中:包括包括A、direct、#data。如:如:MOV R1,A;(;(R1)(A)(5 5)1616位数据传送指令(位数据传送指令(1 1条)条)MOV DPTR,#data16 如:如:MOV DPTR,#10
39、00H;(DPTR)#1000H 注意:注意:(2)、()、(3)、()、(4)、()、(5)均不影响标志位。)均不影响标志位。内部数据传送指令的传送关系图内部数据传送指令的传送关系图MCS-51允许在两个内部允许在两个内部RAM的直接地址之间进行传送数据,的直接地址之间进行传送数据,不允许在两个工作寄存器之间直接进行传送数据。不允许在两个工作寄存器之间直接进行传送数据。2外部外部RAM数据传送指令(数据传送指令(4条)条)特点:特点:只能通过只能通过A,采用寄存器间址(,采用寄存器间址(R0,R1和和DPTR)。)。指令格式:指令格式:MOVX A,MOVX ,A 其中:其中:、包括包括DP
40、TR、Ri(R0,R1)。Ri片外片外RAM的低的低256个单元;个单元;DPTR片外片外RAM。对标志位的影响:对标志位的影响:MOVX A,只影响只影响P标志;标志;MOVX ,A不影响标志位。不影响标志位。如:如:MOVX A,R1;(;(A)(R1)MOVX DPTR,A;(;(DPTR)(A)3程序存储器(程序存储器(ROM)数据传送指令(查表指令)(数据传送指令(查表指令)(2条)条)特点:特点:单向传送,只能读到累加器单向传送,只能读到累加器A A中。专用于查表。中。专用于查表。指令格式:指令格式:MOVC A,A+DPTP ;(A)(A)+(DPTR)MOVC A,A+PC ;
41、(PC)(PC)+1 (A)(A)+(PC)两条指令的异同:两条指令的异同:功能相同,使用中存在着差异。功能相同,使用中存在着差异。(1 1)查表的位置要求不同)查表的位置要求不同A+DPTR(远远程程查查表表):表表可可放放在在64KB ROM的的任任何何地地址址,使使用方便。用方便。A+PC(近近程程查查表表):表表只只能能放放在在ROM中中查查表表指指令令后后的的256B的的地址空间中。地址空间中。(2 2)偏移量的计算方法不同)偏移量的计算方法不同 查表地址:查表地址:A+DPTP(远程查表):(远程查表):(A)+(DPTR)。A+PC(近程查表):(近程查表):(A)+(PC)+1
42、 偏移量的计算方法:偏移量的计算方法:A+DPTP(远程查表):(远程查表):A为欲查数距离表首地址的值。为欲查数距离表首地址的值。A+PC(近程查表):(近程查表):A的值必须预先设置为:的值必须预先设置为:A表首地址当前指令的表首地址当前指令的PC值值1 这两条指令到程序设计时再详细讲解。这两条指令到程序设计时再详细讲解。4 4数据交换指令(数据交换指令(5 5条)条)功能:功能:保存目的操作数。分两类:保存目的操作数。分两类:(1 1)半字节数据交换指令()半字节数据交换指令(2 2条)条)指令格式:指令格式:SWAP A ;(A)30(A)74 XCHD A,Ri ;(A)30(Ri)
43、30 (2)字节交换指令()字节交换指令(3条)条)指令格式:指令格式:XCH A,其中:其中:包括包括Rn、Ri、direct。5堆栈操作指令(堆栈操作指令(2条)条)指令格式:指令格式:PUSH direct ;SP(SP)+1,(SP)(direct)POP direct ;(direct)(SP),SP(SP)1特点:特点:特殊的数据传送指令,根据特殊的数据传送指令,根据SP中的栈顶地址进行操作。中的栈顶地址进行操作。实质:实质:以栈指针以栈指针SP为间址寄存器的间址寻址方式。为间址寄存器的间址寻址方式。注意:注意:堆栈区应避开使用的工作寄存器区和其他需要使用的数堆栈区应避开使用的工作
44、寄存器区和其他需要使用的数据区,系统复位后,据区,系统复位后,SP的初始值为的初始值为07H。一般初始化时要重新。一般初始化时要重新设置设置SP。堆栈区如:如:已知:已知:(40H)=0F0H;(41H)=11H;(SP)60H执行下面程序执行下面程序 PUSH 40H PUSH 41H POP 42H POP 43H 堆栈指令工作过程堆栈指令工作过程 SPSPSPF0H11H数据区43H42H41H40HF0H11H11HF0H如:如:设设(A)=7BH;(35H)=11H 已知(已知(SP)60H执行下面程序,则:执行下面程序,则:PUSH ACC PUSH 35H POP ACC POP
45、 5AH ;(61H)#7BH;(62H)(35H)即:即:(62H)#11H;(A)(62H)即:即:(A)#11H;(5AH)(61H)即:即:(5AH)#7BH这是字节交换的一种方式。这是字节交换的一种方式。2.3.2 2.3.2 算术运算指令算术运算指令(24条)操操作作数数:目目的的操操作作数数A中中;源源操操作作数数在在Rn、片片内内RAM(direct,Ri)中,或)中,或#data。算术运算指令可分为:算术运算指令可分为:加法运算:加法运算:(ADD4条条)带进位加法运算带进位加法运算:(ADDC4条条)带借位减法运算带借位减法运算:(SUBB4条条)加加1/减减1操作:操作:
46、(INC,DEC9条条)单字节乘单字节乘/除法运算除法运算:(MUL,DIV2条条)十进制调整:十进制调整:(DA A1条条)1.1.加法指令(加法指令(4 4条)条)指令格式:指令格式:ADD A,;(A)(A)+包括包括Rn、Ri、direct、#data。对标志位的影响:对标志位的影响:影响影响PSW中的所有标志位。中的所有标志位。2.2.带进位的加法指令(带进位的加法指令(4 4条)条)指令格式:指令格式:ADDC A,;(A)(A)+(Cy)包括包括Rn、Ri、direct、#data。对标志位的影响:对标志位的影响:影响影响PSW中的所有标志位。中的所有标志位。3.带借位的减法指令
47、(带借位的减法指令(4条)条)指令格式:指令格式:SUBB A,;(A)(A)(Cy)包括包括Rn、Ri、direct、#data。对标志位的影响:对标志位的影响:影响影响PSW中的所有标志位。中的所有标志位。注意:注意:MCS-51指令系统中无不带借位的减法指令,指令系统中无不带借位的减法指令,不带借位的减法:不带借位的减法:CLR C(Cy=0)SUBB。4.十进制调整指令(十进制调整指令(BCDBCD码修正指令)(码修正指令)(1条)条)功功能能:跟跟在在ADD、ADDC后后面面,对对运运算算结结果果进进行行压压缩缩BCD码码修修正,完成十进制加法运算功能。正,完成十进制加法运算功能。指
48、令格式:指令格式:DA A 特特点点:专专用用指指令令。两两个个压压缩缩的的BCD码码按按二二进进制制数数相相加加后后必必须须经经本指令调整才能得到压缩的本指令调整才能得到压缩的BCD码的和。码的和。操作数:操作数:源操作数只能在累加器源操作数只能在累加器A中,结果存入中,结果存入A中。中。注意:注意:只适用加法,不能对减法指令进行修正。只适用加法,不能对减法指令进行修正。5.5.加加1 1指令(增量指令)(指令(增量指令)(5 5条)条)功能:功能:操作数所指定的单元的内容加操作数所指定的单元的内容加1。指令格式:指令格式:INC ;+1 包括包括 A、Rn、direct、Ri、DPTR 操
49、作数:操作数:只有一个操作数,即是源操作数又是目的操作数。只有一个操作数,即是源操作数又是目的操作数。对对标标志志位位的的影影响响:除除对对累累加加器器A操操作作影影响响P标标志志位位外外,其其余余均均不不影响影响PSW的各标志位。的各标志位。6.减减1指令指令(减量指令)(减量指令)(4条)条)功能:功能:操作数所指定的单元的内容减操作数所指定的单元的内容减1。指令格式:指令格式:DEC ;1 包括包括 A、Rn、direct、Ri。(DPTR无减无减1)操作数:操作数:只有一个操作数。只有一个操作数。对标志位的影响:对标志位的影响:同加同加1指令。指令。7.乘除指令(乘除指令(2条)条)功
50、能:功能:实现乘法或除法操作。实现乘法或除法操作。特点:特点:在指令系统中执行时间最长,均为四周期指令。在指令系统中执行时间最长,均为四周期指令。指令格式:指令格式:MUL AB ;(;(B)()(A)(A)(B)DIV AB ;(A)(A)/(B)(B)对标志位的影响:对标志位的影响:影响影响PSW中的中的Cy,OV,P标志位,标志位,注意乘除运算后结果保存的位置!注意乘除运算后结果保存的位置!2.3.3 2.3.3 逻辑运算和移位指令逻辑运算和移位指令(24条条)对对标标志志位位的的影影响响:除除了了两两条条带带进进位位的的循循环环移移位位指指令令外外,其其余余均均不不影响影响PSW中的各