《8051单片机指令.ppt》由会员分享,可在线阅读,更多相关《8051单片机指令.ppt(77页珍藏版)》请在第壹文秘上搜索。
1、第第三三章章 8051单片机指令系统单片机指令系统 3.1 MCS-51指令系统的分类、指令系统的分类、格式及一般说明格式及一般说明 3.2 寻址方式寻址方式学习目的及要求学习目的及要求 熟悉指令、指令系统、机器语言、及汇编语熟悉指令、指令系统、机器语言、及汇编语言的概念;言的概念; 熟悉熟悉8051汇编语言指令的格式;汇编语言指令的格式; 掌握掌握8051的七种寻址方式,并能实际应用;的七种寻址方式,并能实际应用;MCS-51单片机指令系统有如下特点:单片机指令系统有如下特点:(1)指令执行时间快。)指令执行时间快。(2)指令短,约有一半的指令为单字节指令。)指令短,约有一半的指令为单字节指
2、令。(3)用一条指令即可实现)用一条指令即可实现2个一字节的相乘或个一字节的相乘或相除。相除。(4)具有丰富的位操作指令。)具有丰富的位操作指令。 (5)可直接用传送指令实现端口的输入输出操)可直接用传送指令实现端口的输入输出操作。作。3.1 MCS-51指令系统的分类、格式及一般说明指令系统的分类、格式及一般说明 3.1.1 指令分类指令分类 3.1.2 指令格式指令格式返回本章首页3.1.1 指令分类指令分类 按指令功能,按指令功能,MCS-51指令系统分为数据传递指令系统分为数据传递与交换、算术运算、逻辑运算、程序转移、与交换、算术运算、逻辑运算、程序转移、布尔处理操作、布尔处理操作、C
3、PU控制等控制等6类。类。 布尔处理操作类指令又称位操作指令。布尔处理操作类指令又称位操作指令。返回本节3.1.2 指令格式指令格式 在在MCS-51指令中,一般指令主要由操作码、操作数指令中,一般指令主要由操作码、操作数组成。组成。 指令格式为:指令格式为:操作码操作码 目的操作数目的操作数,源操作数,源操作数 指令应具有以下功能:指令应具有以下功能:(1)操作码指明执行什么性质和类型的操作。例如,)操作码指明执行什么性质和类型的操作。例如,数的传送、加法、减法等。数的传送、加法、减法等。(2)操作数指明操作的数本身或者是操作数所在的地)操作数指明操作的数本身或者是操作数所在的地址。址。(3
4、)指定操作结果存放的地址。)指定操作结果存放的地址。返回本节8051指令系统中,有单字节、双字节或三字节指令指令系统中,有单字节、双字节或三字节指令1.单字节指令单字节指令:单字节指令中的单字节指令中的8位二进制代码既包含操位二进制代码既包含操作码的信息作码的信息,又包含操作数的信息。共又包含操作数的信息。共49条。条。2 .双字节指令:双字节指令:用一个字节表示操作码,另一个字节表用一个字节表示操作码,另一个字节表示操作数或操作数所在的地址。共有条。示操作数或操作数所在的地址。共有条。3.三字节指令:三字节指令:一个字节操作码,两个字节操作数。共一个字节操作码,两个字节操作数。共有条。有条。
5、单片机共有条指令。单片机共有条指令。3.2 寻址方式寻址方式寻址方式:就是寻找指令中操作数或操作数所在地址的方法。寻址方式:就是寻找指令中操作数或操作数所在地址的方法。8051共有七中寻址方式。共有七中寻址方式。3.2.1 立即寻址立即寻址3.2.2 直接寻址直接寻址3.2.3 寄存器寻址寄存器寻址3.2.4 寄存器间接寻址寄存器间接寻址3.2.5 变址寻址变址寻址3.2.6 相对寻址相对寻址3.2.7 位寻址位寻址3.2.8 寻址空间及符号注释寻址空间及符号注释返回本章首页3.2.1 立即数寻址立即数寻址 指令中直接给出操作数的寻址方式指令中直接给出操作数的寻址方式。立即操作数用。立即操作数
6、用前面加有前面加有#号的号的8位或位或16位数来表示。位数来表示。 例如:例如:MOV A,# 60H;A60H MOV DPTR,# 3400H;DPTR3400H MOV 30H,# 40H ;30H单元单元40H 上述三条指令执行完后,累加器上述三条指令执行完后,累加器A中数据为立即数据中数据为立即数据60H,DPTR寄存器中数据为寄存器中数据为3400H,30H单元中数单元中数据为立即数据为立即数40H。返回本节3.2.2 直接寻址直接寻址 指令中直接给出操作数地址的寻址方式指令中直接给出操作数地址的寻址方式,能,能进行直接寻址的存储空间有进行直接寻址的存储空间有SFR寄存器和片寄存器
7、和片内内RAM的的128个单元。个单元。例如:例如:MOV A,P1; A(P1) 把把SFR中中P1口的内容送口的内容送A。 MOV A,30H;A(30H) 注意解释字段中加括号和不加括号的区别!注意解释字段中加括号和不加括号的区别! 30H为直接给出的内部为直接给出的内部RAM的地址。的地址。返回本节3.2.3 寄存器寻址寄存器寻址 以通用寄存器的内容为操作数的寻址方式。以通用寄存器的内容为操作数的寻址方式。通用寄存器指通用寄存器指A、B 、DPTR以及以及R0R7 。 例如:例如:MOV A,R0;A (R0) CLR A;A0 INC DPTR;DPTRDPTR+1 ADD A,R5
8、;A(A)+(R5)返回本节3.2.4 寄存器间接寻址寄存器间接寻址 以寄存器中内容为地址以寄存器中内容为地址,以该地址中内容为以该地址中内容为操作数的寻址方式操作数的寻址方式。间接寻址的存储器空间。间接寻址的存储器空间包括内部数据包括内部数据RAM和外部数据和外部数据RAM。 能用于寄存器间接寻址的寄存器有能用于寄存器间接寻址的寄存器有R0,R1,DPTR,SP。其中。其中R0、R1必须是工作寄存器必须是工作寄存器组中的寄存器。组中的寄存器。SP仅用于堆栈操作。仅用于堆栈操作。例如:例如:MOV R0,A ;内部;内部RAM(R0)A 其指令操作过程示意图如图其指令操作过程示意图如图3-1所
9、示。所示。 又如:又如:MOVX DPTR,A; 外部外部RAM (DPTR)A 其指令操作过程示意图如图其指令操作过程示意图如图3-所示。所示。片内RAM30HR034HA30H34H图3-1 MOV R0,A间接寻址示意图片外RAM2000HDPTR30HA2000H30H图图- MOVX DPTR,A间接寻址示意图间接寻址示意图返回本节3.2.5 变址寻址变址寻址 是基址寄存器(是基址寄存器(A)+变址寄存器(变址寄存器(PC或或DPTR)的间接寻址的间接寻址。变址寻址只能对程序存储器中数据进。变址寻址只能对程序存储器中数据进行操作。由于程序存储器是只读的,因此变址寻址行操作。由于程序存
10、储器是只读的,因此变址寻址只有读操作而无写操作,在指令符号上采用只有读操作而无写操作,在指令符号上采用MOVC的形式(如图的形式(如图3-4所示)。所示)。 例如:例如:MOVC A, A+DPTR; A(A+DPTR) 又又 如:如:MOVC A, A+PC ; A(A+PC) 这种寻址方式多用于查表操作。这种寻址方式多用于查表操作。图3-4 变址寻址示意图程序存储器2000HDPTR64H(10H)A2010H64H10H2000H返回本节3.2.6 相对寻址相对寻址 以当前程序计数器以当前程序计数器PC的内容为基础,加上指的内容为基础,加上指令给出的一字节补码数(偏移量)形成新的令给出的
11、一字节补码数(偏移量)形成新的PC值的寻址方式。值的寻址方式。 相对寻址用于修改相对寻址用于修改PC值,主要用于实现程序值,主要用于实现程序的分支转移。的分支转移。 例如,例如,SJMP 08H ;PCPC+2+08H 指令操作示意图如图指令操作示意图如图3-5所示。所示。程序存储器(2000H)200AHSJMP200AH08H2000H+208HPC2000H图3-5 相对寻址示意图返回本节3.2.7 位寻址位寻址 位寻址只能对有位地址的单元作位寻址操作。位寻址只能对有位地址的单元作位寻址操作。 位寻址其实是一种直接寻址方式,不过其地位寻址其实是一种直接寻址方式,不过其地址是位地址。址是位
12、地址。 例如:例如:SETB 10H ;将;将10H位置位置1。 若若22H单元中存放着数据单元中存放着数据40H,22H单元的单元的 D0位的位地址为位的位地址为10H,执行上述指令后,执行上述指令后 (22H)=41H。 又如:又如:MOV 32H,C ;32H进位位进位位C ORL C ,32H ;CC32H返回本节3.2.8 寻址空间及符号注释寻址空间及符号注释1.1.寻址空间寻址空间: :每种寻址方式可涉及的存储器空间每种寻址方式可涉及的存储器空间寻址方式寻址方式源操作数寻址空间源操作数寻址空间立即数寻址立即数寻址程序存储器程序存储器ROM直接寻址直接寻址片内片内RAM低低128B、
13、SFR寄存器寻址寄存器寻址工作寄存器工作寄存器R0-R7、A、B、C、DPTR寄存器间接寻址寄存器间接寻址片内片内RAM低低128BR0、R1片外片外RAM R0、R1、 DPTR变址寻址变址寻址程序存储器程序存储器A+PC、 A+DPTR相对寻址相对寻址程序存储器程序存储器256B范围(范围(PC+偏移量)偏移量)位寻址位寻址片内片内RAM的的20H2FH字节地址、部分字节地址、部分SFR例如:例如:MOV A,#55H; 究竟属于立即寻址还是寄存器寻址呢?究竟属于立即寻址还是寄存器寻址呢?这要看以哪个操作数为参照系了。我们一般这要看以哪个操作数为参照系了。我们一般所说的寻址方式是指源操作数
14、,所以此例为所说的寻址方式是指源操作数,所以此例为立即数寻址。立即数寻址。2.寻址方式中常用符号注释寻址方式中常用符号注释 Rn当前选中的寄存器区中的当前选中的寄存器区中的8个工作寄存器个工作寄存器R0R7(n=07)。)。 Ri当前选中的寄存器区中的当前选中的寄存器区中的2个工作寄存器(间个工作寄存器(间接寻址寄存器)接寻址寄存器)R0、R1(i=0,1)。)。 direct8位的内部数据存储器单元中的地址。位的内部数据存储器单元中的地址。 #data包含在指令中的包含在指令中的8位常数。位常数。 #data16包含在指令中的包含在指令中的16位常数。位常数。 addr1616位目的地址。位
15、目的地址。 addr1111位目的地址。位目的地址。rel8位带符号的偏移字节,简称偏移量。位带符号的偏移字节,简称偏移量。DPTR数据指针,可用作数据指针,可用作16位地址寄存器。位地址寄存器。bit内部内部RAM或专用寄存器中的直接寻址位。或专用寄存器中的直接寻址位。A累加器。累加器。B专用寄存器,用于乘法和除法指令中。专用寄存器,用于乘法和除法指令中。C进位标志或进位位,或布尔处理机中的累加器。进位标志或进位位,或布尔处理机中的累加器。$ 用于表示程序计数器的当前值。常出现在转移指用于表示程序计数器的当前值。常出现在转移指令中,例如:令中,例如:SJMP $ 表示循环等待。表示循环等待。
16、间址寄存器或基址寄存器的前缀,如间址寄存器或基址寄存器的前缀,如Ri,DPTR。/ 位操作数的前缀,表示对该位操作数取反,位操作数的前缀,表示对该位操作数取反,如如/bit。片内片内RAM的直接地址或寄存器。的直接地址或寄存器。()由由寻址的单元中的内容。寻址的单元中的内容。 箭头左边的内容被箭头右边的内容所箭头左边的内容被箭头右边的内容所代替。代替。返回本节课堂作业课堂作业: P67: 1、4、7课后作业课后作业: P67: 2、3、5 谢谢 谢谢 大大 家家 再再 见!见!3.3 MCS-51单片机的指令系统单片机的指令系统学习目的及要求学习目的及要求 熟悉各类指令的功能、操作的对象和结果及熟悉各类指令的功能、操作的对象和结果及指令执行后对指令执行后对PSW各个位的影响。各个位的影响。 8051指令系统的特点:不同的存储空间寻址指令系统的特点:不同的存储空间寻址方式不同,适用的指令不同。方式不同,适用的指令不同。 3.3.1 数据传送类指令数据传送类指令 3.3.2 算术运算类指令算术运算类指令 3.3.3 逻辑运算类指令逻辑运算类指令 3.3.4 控制程序转移类指令控制程序转移类