




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第2 2章章 MCS-51MCS-51单片机指令系统与单片机指令系统与汇编语言程序设计汇编语言程序设计主要内容:主要内容:MCS-51单片机的寻址方式、指令系统、基本程单片机的寻址方式、指令系统、基本程序结构及汇编语言程序的开发与调试。序结构及汇编语言程序的开发与调试。重重 点:寻址方式、各种指令的应用、程序设计的规范、点:寻址方式、各种指令的应用、程序设计的规范、程序设计的思想及典型程序的理解和掌握。程序设计的思想及典型程序的理解和掌握。难难 点:控制转移、位操作指令的理解,各种指令的灵活点:控制转移、位操作指令的理解,各种指令的灵活应用,程序设计的基本方法以及针对具体的硬件应用,程序设计
2、的基本方法以及针对具体的硬件设计出最合理的软件。设计出最合理的软件。要要 求求: 抽时间自学抽时间自学Keil,C51。第第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的值赋予字符名
11、称的值赋予字符名称x。程序中凡出现该字符名。程序中凡出现该字符名称称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位数值常数,先存高位数值常
13、数,先存高8位入低位地址单元。位入低位地址单元。(6预留存储空间伪指令预留存储空间伪指令DS格式:格式:标号标号: DS n功能:从标号指定地址单元开始,预留功能:从标号指定地址单元开始,预留n个存储单元。个存储单元。规定:汇编时不对预留存储单元赋值。规定:汇编时不对预留存储单元赋值。n数据,表达式。数据,表达式。注意:注意:DB、DW、DS伪指令只能对程序存储器进行赋值和初始伪指令只能对程序存储器进行赋值和初始化工作,不能用来对数据存储器进行赋值和初始化工作。化工作,不能用来对数据存储器进行赋值和初始化工作。 (7定义位地址符号伪指令定义位地址符号伪指令BIT格式:字符名称格式:字符名称x
14、BIT 位地址位地址n功能:将位地址功能:将位地址n的值赋予字符名称的值赋予字符名称x。规定:程序中凡出现该字符名称规定:程序中凡出现该字符名称x就代表该位地址。位地址就代表该位地址。位地址n绝对地址,符号地址。绝对地址,符号地址。(8数据地址赋值伪指令数据地址赋值伪指令DATA格式:字符名称格式:字符名称x DATA 表达式表达式n功能:把表达式功能:把表达式n的值赋值给左边的字符名称的值赋值给左边的字符名称x。规定:规定: n数据或地址,包含所定义的数据或地址,包含所定义的“字符名称字符名称x在内的在内的表达式,但不能为汇编符号。表达式,但不能为汇编符号。DATA与与EQU的主要区别是:的
15、主要区别是:EQU必须先定义后使用,必须先定义后使用,DATA无无限制。限制。 EQU 源程序的开头,源程序的开头,DATA源程序的开头或末源程序的开头或末尾。尾。 2.1.2 指令的分类指令的分类 MCS-51指令系统有111条指令,分类如下:1. 按指令字节数分类 单字节(49条),双字节(46条),3字节(16条)。2. 按指令执行时间分类 单机器周期指令65条)、双机器周期指令44条和四机器周期指令2条)。3. 按功能分类 数据传送指令29条)、算术操作指令24条)、逻辑操作指令24条)、控制转移指令17条和位操作指令17条)。 4. 指令的字节数:指令的字节数: 指令操作码指令操作码
16、1字节;直接地址字节;直接地址1字节,字节,8位数据位数据1字节,字节, 16位数据位数据2字节;操作数中的字节;操作数中的A、B、R0R7、 C、 Ri、DPTR、 A+ DPTR、 A+ PC等均隐含在操作码中。等均隐含在操作码中。(11字节指令单字节指令)字节指令单字节指令) 指令中只有操作码。指令中只有操作码。 NOP RET 操作数的寄存器号隐含在指令码中。操作数的寄存器号隐含在指令码中。 MOV A,Rn;指令码;指令码11101 rrr INC DPTR ;指令码;指令码A3H(22字节指令双字节指令)字节指令双字节指令) 指令的格式:操作码指令的格式:操作码 操作数操作码为第一
17、字节,操作数操作数操作码为第一字节,操作数为第二字节)为第二字节) MOV A,#data;指令码为;指令码为0111 0100 #data(3) 3字节指令三字节指令)字节指令三字节指令) 指令的格式:操作码指令的格式:操作码 目的操作数,源操作数三字节:操作目的操作数,源操作数三字节:操作码,目的操作数,源操作数)码,目的操作数,源操作数) ANL direct,#data;指令码;指令码0101 0011 direct #dataSWAP A23221232112MOV DPTR,#1000HMOVA,20HANLA,#0FHMOVC A,A+DPTRMOV21H,AMOVSP,#60H
18、ANLA,#0F0HMOVC A,A+PCMOV22H, ASJMP 注:部分特殊功能寄存器注:部分特殊功能寄存器SFR占一个字节。占一个字节。2.1.3 指令中的常用符号指令中的常用符号 MCS-51指令系统共有44种助记符,类似于8086。常用符号如下:Rnn=07):工作寄存器组R0R7中的任一个寄存器。Rii=0或1):工作寄存器组中用于间址的寄存器R0, R1。#data:8位直接参与操作的立即数。#data16:16位直接参与操作的立即数。direct:片内RAM的8位单元地址。addr11:11位目的地址,主要用于ACALL和AJMP指令中。addr16:16位目的地址,主要用于
19、LCALL和LJMP指令中。 rel:8位二进制地址偏移量补码),取值范围为128+127,主要用于相对转移指令,以形成转移的目的地址。DPTR:数据指针,用于寄存器间接寻址方式和变址寻址方式。bit:片内:片内RAM的位寻址区、可以位寻址的的位寻址区、可以位寻址的SFR的位地址。的位地址。A或或ACC):累加器。):累加器。B :B寄存器。寄存器。C:PSW中的进位标志位中的进位标志位Cy。:用于间接寻址寄存器指针的前缀标志。:用于间接寻址寄存器指针的前缀标志。$:当前指令的地址。:当前指令的地址。 /:在位操作指令中,对该位先求反后再参与操作。:在位操作指令中,对该位先求反后再参与操作。(
20、X):由):由X所指定的某寄存器或某单元中的内容。所指定的某寄存器或某单元中的内容。 (X):由:由X间接寻址单元中的内容。间接寻址单元中的内容。:指令的操作结果是将箭头右边的内容传送到左边。:指令的操作结果是将箭头右边的内容传送到左边。:指令的操作结果是将箭头左边的内容传送到右边。:指令的操作结果是将箭头左边的内容传送到右边。、 、 :表示逻辑或、与、异或。:表示逻辑或、与、异或。寻址方式:说明操作数所在地址的方法。或指令按地址获得操作寻址方式:说明操作数所在地址的方法。或指令按地址获得操作数的方式。数的方式。 计算机在设计时决定了它的寻址方式,寻址方式越多,计算计算机在设计时决定了它的寻址
21、方式,寻址方式越多,计算机的灵活性越强,指令系统也就越复杂。机的灵活性越强,指令系统也就越复杂。 MCS-51单片机的指令系统提供了七种寻址方式,分别为:单片机的指令系统提供了七种寻址方式,分别为: 立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。一条指令可能含多种寻址方式。寻址、相对寻址和位寻址。一条指令可能含多种寻址方式。2.2 MCS-512.2 MCS-51单片机的寻址方式单片机的寻址方式 计算机执行程序实际上是在不断寻找操作数并进行操作的过程。计算机执行程序实际上是在不断寻找操作数并进行操作的过程。2.2
22、.1 立即寻址立即寻址 定义:立即参与操作的数据立即数直接写在指令中。定义:立即参与操作的数据立即数直接写在指令中。特点:指令中直接含有所需特点:指令中直接含有所需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
23、.2.2 直接寻址直接寻址定义:操作数的地址直接写在指令中。定义:操作数的地址直接写在指令中。特点:指令中含有操作数的地址指出了参与操作的数据所存放特点:指令中含有操作数的地址指出了参与操作的数据所存放在存储器单元位的地址。在存储器单元位的地址。寻址范围:寻址范围: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
24、; (P1)(#5AH) 2.2.3 寄存器寻址寄存器寻址定义:操作数存放在定义:操作数存放在MCS-51内部的内部的Rn或部分专用寄存或部分专用寄存器中。器中。特点:指令中指出的寄存器的内容作为操作数。特点:指令中指出的寄存器的内容作为操作数。寻址范围:四组通用寄存器寻址范围:四组通用寄存器RnR0R7)、部分专用)、部分专用寄存器(寄存器( A, B, DPTR, Cy )。)。 MOV A,R7 ; (A) (R7) MOV 30H,B ;(;(30H)(B) MOV DPTR,#1000H ; (DPTR) 1000H存放操作数的寄存器在指令代码中不占据单独的一个字节,存放操作数的寄存
25、器在指令代码中不占据单独的一个字节,嵌入隐含到操作码字节中。嵌入隐含到操作码字节中。2.2.4 寄存器间接寻址寄存器间址)寄存器间接寻址寄存器间址)定义:指令的寄存器中存放的是操作数据的单元地定义:指令的寄存器中存放的是操作数据的单元地址。址。特点:二次寻找操作数地址的寻址方式。特点:二次寻找操作数地址的寻址方式。 寻址范围:内部寻址范围:内部RAM低低128B只能用只能用R0或或R1),), 外部外部RAMR0、R1,DPTR)。)。 MOV R1,#30H ; (R1) 立即数立即数30H MOV R1,#0FH ; (30H)立即数立即数0FH MOV A,R1 ; (A)(30H)=立
26、即数立即数0FH寄存器间接寻址,寄存器前边必须加前缀符号寄存器间接寻址,寄存器前边必须加前缀符号“”“”,不能用于寻址特殊功能寄存器不能用于寻址特殊功能寄存器SFR。 2.2.5 变址寻址基址加变址寄存器间接寻址)变址寻址基址加变址寄存器间接寻址)定义:操作数存放在变址寄存器累加器定义:操作数存放在变址寄存器累加器A和基址寄存器和基址寄存器DPTR或或PC相加形成的相加形成的16位地址单元中。位地址单元中。特点:单字节指令,指令操作码中隐含基址寄存器和变址寄存特点:单字节指令,指令操作码中隐含基址寄存器和变址寄存器。执行时,基地址器。执行时,基地址+偏移地址偏移地址操作数地址操作数地址操作数操
27、作数完成相完成相应的操作。应的操作。寻址范围:寻址范围:ROM,主要用于查表性质的访问。,主要用于查表性质的访问。注意:注意:A中存放的偏移地址的范围为中存放的偏移地址的范围为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 过
28、程:过程: (A)+(DPTR) = 1284H(1284H)= 65H (A)=65H 2.2.6 相对寻址相对寻址定义:将程序计数器定义:将程序计数器PC的当前值取出本条指令后的的当前值取出本条指令后的PC值与值与+rel新的转移目标地址。新的转移目标地址。特点:用于程序的相对转移,易于生成浮动代码。特点:用于程序的相对转移,易于生成浮动代码。如:如: SJMP rel ; (PC)(PC) + 2 + rel 双字双字节指令节指令 相对转移指令的目的地址指令地址指令字节数相对转移指令的目的地址指令地址指令字节数偏移量偏移量寻址范围:寻址范围:ROM。相对地址偏移量相对地址偏移量rel):
29、):8位二进制补码,范围为位二进制补码,范围为128127。在程序中,在程序中,“rel” 通常用通常用“标号替代。标号替代。分析指令分析指令SJMP 06H的执行过程及执行结果。的执行过程及执行结果。 执行的过程如下图所示。执行的过程如下图所示。2.2.7 位寻址位寻址定义:指令中给出的操作数是一个可单独寻址的位地定义:指令中给出的操作数是一个可单独寻址的位地址。址。特点:直接寻址方式的一种,对特点:直接寻址方式的一种,对8位二进制数中的某一位二进制数中的某一位的地址进行操作。位的地址进行操作。寻址范围:片内寻址范围:片内RAM低低128B中位寻址区、部分中位寻址区、部分SFR83位)。位)
30、。可位寻址的位地址的表示形式:可位寻址的位地址的表示形式:(1直接使用位地址。直接使用位地址。 如:如: MOV 00H, C ;(00H)(Cy) 其中:其中:00H是片内是片内RAM中中20H地址单元的第地址单元的第0位。位。(2字节地址加位序号的形式。如:字节地址加位序号的形式。如: MOV 20H.0, C ; (20H.0)(Cy) 其中:其中:20H.0是片内是片内RAM中中20H地址单元的第地址单元的第0位。位。(3位的符号地址位名称的形式。位的符号地址位名称的形式。 利用部分特殊功能寄存器各位的特定名称来访问该位。利用部分特殊功能寄存器各位的特定名称来访问该位。 如:如: AN
31、L C, P ; (C) (C)(P) 其中:其中:P是是PSW的第的第0位,位,C是是PSW的第的第7位。位。(4字节符号地址字节名称加位序号的形式。字节符号地址字节名称加位序号的形式。 利用部分特殊功能寄存器名称加位序号形式来访问该位。利用部分特殊功能寄存器名称加位序号形式来访问该位。 如:如: CPL PSW.6 ; (AC) ( ) 其中:其中: PSW.6表示该位是表示该位是PSW的第的第6位。位。AC例题例题1 指出下列指令中源操作数的寻址方式指出下列指令中源操作数的寻址方式寄存器寻址寄存器寻址立即寻址立即寻址寄存器间接寻址寄存器间接寻址直接寻址直接寻址变址寻址变址寻址相对寻址相对
32、寻址位寻址位寻址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)+(DPTR)SJMP LP ; (PC)(PC)+ 2 + 偏移量偏移量MOV 65H, C ;(65H)(Cy)2.3 MCS-512.3 MCS-51单片机的指令系统单片机的指令系统 MCS-51指令系统:指令系统:44种助记符,种助记符,33种功能,种功能,51种操作,种操作,111条指令指令助记符与操作数的各种寻址方式的结合)。条指令指令助记符
33、与操作数的各种寻址方式的结合)。 MCS-51单片机指令系统按其功能可分为五类:单片机指令系统按其功能可分为五类: 数据传送类指令数据传送类指令 算术运算类指令算术运算类指令 逻辑运算和移位类指令逻辑运算和移位类指令 控制转移类指令控制转移类指令 位操作类指令位操作类指令学习指令系统时,应注意:学习指令系统时,应注意: (1 1指令的格式、功能;指令的格式、功能; (2 2操作码的含义,操作数的表示方法;操作码的含义,操作数的表示方法; (3 3寻址方式,源、目的操作数的范围;寻址方式,源、目的操作数的范围; (4 4对标志位的影响;对标志位的影响; (5 5指令的适用范围;指令的适用范围;
34、(6 6正确估算指令的字节数。正确估算指令的字节数。操作码操作码1字节。操作数中:字节。操作数中:直接地址直接地址derict1字节,字节,#data1字节,字节,#data16两字节;两字节;A、B、R0R7、 C、 Ri、DPTR、 A+ DPTR、 A+ PC等等均隐含在操作码中。特殊功能寄存器均隐含在操作码中。特殊功能寄存器SFR一个字节。一个字节。2.3 MCS-512.3 MCS-51单片机的指令系统单片机的指令系统2.3.1 数据传送类指令数据传送类指令29条)条)2.3.2 算术运算类指令算术运算类指令24条)条)2.3.3 逻辑运算及移位类指令逻辑运算及移位类指令24条)条)
35、2.3.4 控制转移类指令控制转移类指令17条)条)2.3.5 位操作布尔操作类指令位操作布尔操作类指令17条)条)2.3.1 数据传送指令数据传送指令 最基本、最主要的操作指令。最基本、最主要的操作指令。29条,可分为五类:条,可分为五类:内部内部RAM间传送:间传送: (MOV16条)条)外部外部RAM与累加器间传送与累加器间传送:(MOVX4条)条)ROM向累加器传送:(向累加器传送:(MOVC2条)条)数据交换:(数据交换:( SWAP, XCH,XCHD5条)条)堆栈操作:堆栈操作: (PUSH,POP2条)条)寻址范围:累加器寻址范围:累加器A、片内、片内RAM、SFR、片外、片外
36、RAM、ROM。功能:(目的地址)功能:(目的地址)(源地址),表示为(源地址),表示为: 源地址单元的内容不变。源地址单元的内容不变。对标志位的影响:除以累加器对标志位的影响:除以累加器A为目的操作数的数据传送指令对为目的操作数的数据传送指令对P标志位有影响外,标志位有影响外,其余均不影响标志位。其余均不影响标志位。1内部内部RAM数据传送指令数据传送指令16条)条)格式:格式: MOV , 范围:片内范围:片内RAM、SFR中。中。指令形式:按目的操作数可将内部数据传送指令分为五类。指令形式:按目的操作数可将内部数据传送指令分为五类。(1以累加器以累加器A为目的操作数为目的操作数4条)条)
37、 MOV A , 其中:其中: 包括包括Rn、Ri、direct、#data。影响。影响P标志。标志。 如:如:MOV A,30H (A)(30H) (2以工作寄存器以工作寄存器Rn为目的操作数为目的操作数3条)条) MOV Rn , 其中:其中: 包括包括A、direct、#data 。 如:如:MOV R7,#30H (R7) #30H(3 3以直接地址单元为目的操作数以直接地址单元为目的操作数5 5条)条) MOV direct , MOV direct , 其中:其中: 包括包括A A、RnRn、RiRi、direct direct 、#data #data 。 如:如: MOV 30
38、HMOV 30H, 20H20H; (30H30H) (20H20H)(4 4以间址寄存器以间址寄存器RiRi为目的操作数为目的操作数3 3条)条) MOV Ri , MOV Ri , 其中:其中: 包括包括A A、direct direct 、#data #data 。 如:如: MOV R1MOV R1,A A ;(;(R1R1) (A A)(5 51616位数据传送指令位数据传送指令1 1条)条) MOV DPTR , #data16MOV DPTR , #data16 如:如: MOV DPTRMOV DPTR,#1000H#1000H; (DPTR DPTR ) #1000H #10
39、00H 注意:(注意:(2 2)、()、(3 3)、()、(4 4)、()、(5 5均不影响标志位。均不影响标志位。 内部数据传送指令的传送关系图内部数据传送指令的传送关系图MCS-51允许在两个内部允许在两个内部RAM的直接地址之间进行传送数据,的直接地址之间进行传送数据,不允许在两个工作寄存器之间直接进行传送数据。不允许在两个工作寄存器之间直接进行传送数据。2外部外部RAM数据传送指令数据传送指令4条)条) 特点:只能通过特点:只能通过A,采用寄存器间址,采用寄存器间址R0, R1和和DPTR)。)。指令格式:指令格式: MOVX A , MOVX , A 其中:其中: 、 包括包括DPT
40、R、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 ;MOVC A , A+
41、DPTP ;(A A)(A A)+ +(DPTRDPTR) MOVC A , A+PC ;MOVC A , A+PC ;(PCPC)(PCPC)+1+1 (A A)(A A)+ +(PCPC) 两条指令的异同:功能相同,使用中存在着差异。两条指令的异同:功能相同,使用中存在着差异。 (1 1查表的位置要求不同查表的位置要求不同A+DPTRA+DPTR远程查表):表可放在远程查表):表可放在64KB ROM64KB ROM的任何地址,使用方的任何地址,使用方便。便。A+PC A+PC (近程查表):表只能放在(近程查表):表只能放在ROMROM中查表指令后的中查表指令后的256B256B的地的地
42、址空间中。址空间中。(2 2偏移量的计算方法不同偏移量的计算方法不同 查表地址:查表地址: A+DPTPA+DPTP远程查表):(远程查表):(A A)+ +(DPTRDPTR) 。 A+PC A+PC (近程查表):(近程查表):(A A)+ +(PCPC)+1+1 偏移量的计算方法:偏移量的计算方法: A+DPTPA+DPTP远程查表):远程查表):A A为欲查数距离表首地址的值。为欲查数距离表首地址的值。 A+PC A+PC (近程查表):(近程查表):A A的值必须预先设置为:的值必须预先设置为: AA表首地址当前指令的表首地址当前指令的PCPC值值1 1 这两条指令到程序设计时再详细
43、讲解。这两条指令到程序设计时再详细讲解。 4 4数据交换指令数据交换指令5 5条)条)功能:保存目的操作数。分两类:功能:保存目的操作数。分两类:(1 1半字节数据交换指令半字节数据交换指令2 2条)条) 指令格式:指令格式: SWAP A ;SWAP A ;(A A3 300(A A7 74 4 XCHD A , Ri ; XCHD A , Ri ;(A A3 300(RiRi)3 30 0 (2 2字节交换指令字节交换指令3 3条)条) 指令格式:指令格式:XCH A , XCH A , 其中:其中: 包括包括RnRn、RiRi、direct direct 。5堆栈操作指令堆栈操作指令2条
44、)条)指令格式:指令格式: PUSH direct ; SP(SP)+1 , (SP)(direct) POP direct ;(direct)(SP) , SP(SP)1特点:特殊的数据传送指令,根据特点:特殊的数据传送指令,根据SP中的栈顶地址进行操作。中的栈顶地址进行操作。实质:以栈指针实质:以栈指针SP为间址寄存器的间址寻址方式。为间址寄存器的间址寻址方式。注意:堆栈区应避开使用的工作寄存器区和其他需要使用的数注意:堆栈区应避开使用的工作寄存器区和其他需要使用的数据区,系统复位后,据区,系统复位后,SP的初始值为的初始值为07H。一般初始化时要重新。一般初始化时要重新设置设置SP。 堆
45、栈区如:知:如:知:(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 5AH ; (61H) #7BH; (62H) (35H) 即:即:(62H) #11H; (A) (62H) 即:即:(A) #11H; (5
46、AH) (61H) 即:即:(5AH) #7BH这是字节交换的一种方式。这是字节交换的一种方式。2.3.2 2.3.2 算术运算指令算术运算指令 (2424条)条)操作数:目的操作数操作数:目的操作数A中;源操作数在中;源操作数在Rn、片内、片内RAMdirect,Ri中,或中,或#data。 算术运算指令可分为:算术运算指令可分为:加法运算:加法运算: (ADD4条条)带进位加法运算带进位加法运算: (ADDC4条条)带借位减法运算带借位减法运算: (SUBB4条条)加加1/减减1操作:操作: (INC,DEC9条条)单字节乘单字节乘/除法运算除法运算: (MUL,DIV2条条)十进制调整:
47、十进制调整: (DA A1条条)1.1.加法指令加法指令4 4条)条)指令格式:指令格式: ADD A , ; (A)(A)+ 包括包括Rn、Ri、direct、#data。对标志位的影响:影响对标志位的影响:影响PSW中的所有标志位。中的所有标志位。 2. 带进位的加法指令带进位的加法指令4条)条)指令格式:指令格式: ADDC A , ; (A)(A)+ + (Cy) 包括包括Rn、Ri、direct、#data。对标志位的影响:影响对标志位的影响:影响PSW中的所有标志位。中的所有标志位。 3. 带借位的减法指令带借位的减法指令4条)条) 指令格式:指令格式: SUBB A , ; (A
48、)(A) (Cy) 包括包括Rn、Ri、direct、#data。对标志位的影响:影响对标志位的影响:影响PSW中的所有标志位。中的所有标志位。 注意:注意:MCS-51指令系统中无不带借位的减法指令,指令系统中无不带借位的减法指令, 不带借位的减法:不带借位的减法: CLR C( Cy=0)SUBB。 4. 十进制调整指令十进制调整指令BCD码修正指令)(码修正指令)(1条)条) 功能:跟在功能:跟在ADD、ADDC后面,对运算结果进行压缩后面,对运算结果进行压缩BCD码修码修正,完成十进制加法运算功能。正,完成十进制加法运算功能。指令格式:指令格式:DA A 特点:专用指令。两个压缩的特点
49、:专用指令。两个压缩的BCD码按二进制数相加后必须经码按二进制数相加后必须经本指令调整才能得到压缩的本指令调整才能得到压缩的BCD码的和。码的和。操作数:源操作数只能在累加器操作数:源操作数只能在累加器A中,结果存入中,结果存入A中。中。注意:只适用加法,不能对减法指令进行修正。注意:只适用加法,不能对减法指令进行修正。 5. 5. 加加1 1指令增量指令)(指令增量指令)(5 5条)条) 功能:操作数所指定的单元的内容加功能:操作数所指定的单元的内容加1 。指令格式:指令格式:INC ; + 1 包括包括 A、Rn、direct、Ri、 DPTR 操作数:只有一个操作数,即是源操作数又是目的
50、操作数。操作数:只有一个操作数,即是源操作数又是目的操作数。对标志位的影响:除对累加器对标志位的影响:除对累加器A操作影响操作影响P标志位外,其余均不标志位外,其余均不影响影响PSW的各标志位。的各标志位。 6. 减减1指令减量指令)(指令减量指令)(4条)条) 功能:操作数所指定的单元的内容减功能:操作数所指定的单元的内容减1 。指令格式:指令格式:DEC ; 1 包括包括 A、Rn、direct、Ri。(。(DPTR无减无减1)操作数:只有一个操作数。操作数:只有一个操作数。对标志位的影响:同加对标志位的影响:同加1指令。指令。7. 乘除指令乘除指令2条)条) 功能:实现乘法或除法操作。功
51、能:实现乘法或除法操作。特点:在指令系统中执行时间最长,均为四周期指令。特点:在指令系统中执行时间最长,均为四周期指令。指令格式:指令格式: MUL AB ;(;(B)()(A)(A)(B) DIV AB ; (A)(A)/(B)(B)对标志位的影响:影响对标志位的影响:影响PSW中的中的Cy, OV, P标志位,标志位, 注意乘除运算后结果保存的位置!注意乘除运算后结果保存的位置!2.3.3 2.3.3 逻辑运算和移位指令逻辑运算和移位指令 ( 2424条)条)对标志位的影响:除了两条带进位的循环移位指令外,其余均对标志位的影响:除了两条带进位的循环移位指令外,其余均不影响不影响PSW中的各
52、标志位;目的操作数是中的各标志位;目的操作数是A时影响时影响P标志位。标志位。分类:分类:5种,种,24条。条。 逻辑与运算:(逻辑与运算:(ANL6条)条) 逻辑或运算:(逻辑或运算:(ORL6条)条) 逻辑异或运算:(逻辑异或运算:(XRL6条)条) 累加器清零累加器清零/取反:(取反:(CLR,CPL2条)条) 累加器移位操作累加器移位操作: (RL,RLC,RR,RRC4条)条)功能:逻辑运算,模拟各种数字逻辑电路的功能,进行逻辑电功能:逻辑运算,模拟各种数字逻辑电路的功能,进行逻辑电路的设计。路的设计。1逻辑与运算指令逻辑与运算指令6条)条) 功能:实现两个操作数的逻辑与。功能:实现
53、两个操作数的逻辑与。指令格式:指令格式:ANL A , ; 包括包括Rn、Ri、direct、#data ANL direct , ; 包括包括A、#data适用场合:逻辑与,用于操作数的某些位不变这些位与适用场合:逻辑与,用于操作数的某些位不变这些位与“1”),某些位置),某些位置0这些位与这些位与“0”)。)。2逻辑或运算指令逻辑或运算指令6条)条)功能:实现两个操作数的逻辑或。功能:实现两个操作数的逻辑或。指令格式:指令格式:ORL A , ; 包括包括Rn、Ri、direct、#data ORL direct , ; 包括包括A、#data适用场合:逻辑或,用于操作数的某些位不变这些位
54、或适用场合:逻辑或,用于操作数的某些位不变这些位或“0”),某些位置),某些位置1这些位或这些位或“1”)。)。3逻辑异或运算指令逻辑异或运算指令6条)条) 功能:两个操作数的逻辑异或。功能:两个操作数的逻辑异或。指令格式:指令格式:XRL A , ; 包括包括Rn、Ri、direct、#data XRL direct , ; 包括包括A、#data适用场合:逻辑异或,用于操作数的某些位不变这些位异或适用场合:逻辑异或,用于操作数的某些位不变这些位异或“0”),某些位取反这些位异或),某些位取反这些位异或“1”)。)。4循环移位指令循环移位指令4条)条) 不带进位的循环左、右移位操作码为不带进
55、位的循环左、右移位操作码为RL, RR) 带进位的循环左、右移位操作码为带进位的循环左、右移位操作码为RLC, RRC)特点:只能对累加器特点:只能对累加器A进行循环移位。进行循环移位。指令格式:指令格式: 操作码操作码 A功能:功能:A中的数据逐位左移中的数据逐位左移1位位乘乘2,逐位右移,逐位右移1位位除以除以2。5累加器清累加器清0与取反指令与取反指令2条)条) 指令格式:指令格式:CLR A ;(;(A)00H CPL A ;(;(A)( )特点:节省存储空间,提高程序执行效率。特点:节省存储空间,提高程序执行效率。 对标志位的影响:对标志位的影响:CLR 只影响只影响P标志位,标志位
56、,CPL 不影响标志位。不影响标志位。 A循循环环移移位位指指令令示示意意图图2.3.4 控制转移指令控制转移指令 (17条)条)功能:改变功能:改变PC中的内容,控制程序执行的流向,实现程序分支中的内容,控制程序执行的流向,实现程序分支转向。转向。分类:分类:4种,种,17条。条。 无条件转移:(无条件转移:(LJMP,AJMP,SJMP,JMP4条)条) 条件转移判断跳转):(条件转移判断跳转):(JZ,JNZ,CJNE,DJNZ8条)条) 子程序调用及返回:(子程序调用及返回:(LCALL,ACALL,RET,RETI4条)条) 空操作空操作: (NOP1条)条) “耗时一个机器周期。耗
57、时一个机器周期。 对标志位的影响:除了对标志位的影响:除了CJNE影响影响Cy外,其余均不影响标志位。外,其余均不影响标志位。 1无条件转移指令无条件转移指令4条)条) 定义:不规定条件的程序转移。定义:不规定条件的程序转移。 指令格式:指令格式: 长转移指令:长转移指令: LJMP addr16 ;(PC)addr150 绝对转移指令:绝对转移指令: AJMP addr11 ;(PC)(PC)+2, PC100 addr11 相对短转移指令:相对短转移指令:SJMP rel ;(PC)(PC)+2+rel 间接散转移指令:间接散转移指令:JMP A+DPTR ;(PC) (DPTR)+(A)
58、注意:注意:(1指令中的地址或偏移量均可采用标号,只有在执行前才被指令中的地址或偏移量均可采用标号,只有在执行前才被汇编成实际的二进制地址。汇编成实际的二进制地址。(2指令的转移范围:指令的转移范围: 在执行当前转移指令后的在执行当前转移指令后的PC值的基础上值的基础上: LJMP: 64KB AJMP :2KB SJMP : 128+127用补码表示)用补码表示) JMP : 64KB(3SJMP rel 中地址偏移量中地址偏移量rel的计算方法:的计算方法: rel = 转移目标地址转移指令地址转移目标地址转移指令地址(当前当前PC值值) 2(4原地踏步暂停当前的程序的实现原地踏步暂停当前
59、的程序的实现 SJMP $ 或或 LP: SJMP LP (5JMP A+DPTR 功能:实现程序的分支转移散转),功能:实现程序的分支转移散转), DPTR为转移目的的起始地址,为转移目的的起始地址,A为转移目的的偏移量。为转移目的的偏移量。(6在编程中,经常使用短转移指令在编程中,经常使用短转移指令SJMP和相对转移指令和相对转移指令AJMP,以便生成浮动代码,并不经常使用长转移指令,以便生成浮动代码,并不经常使用长转移指令LJMP。 2条件转移指令条件转移指令2条)条) 功能:实质上是功能:实质上是A判零指令。在规定的条件满足时进行程序转判零指令。在规定的条件满足时进行程序转移,否则程序
60、往下顺序执行。移,否则程序往下顺序执行。指令格式:指令格式: JZ rel ; 假设假设(A)=0,则转移,则转移 (PC) (PC)+2+rel 假设假设(A)0,则顺序执行,则顺序执行(PC) (PC) +2 JNZ rel ; 假设假设(A)0 ,则转移,则转移 (PC) (PC)+2+rel 假设假设(A) =0 ,则顺序执行,则顺序执行(PC) (PC) +2 指令的转移范围:指令的转移范围:rel的取值范围为的取值范围为128+127用补码表用补码表示)。示)。 可以采用符号地址表示。可以采用符号地址表示。偏移量偏移量rel的计算方法:的计算方法: rel = 转移目标地址转移指令
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省黄石市名校2024-2025学年七年级数学第一学期期末教学质量检测试题含解析
- 广东文理职业学院《法律文献检索与论文写作》2023-2024学年第一学期期末试卷
- 南昌师范学院《快题设计景观》2023-2024学年第一学期期末试卷
- 江苏省淮安市三树镇蒋集九一贯制学校2024年七年级数学第一学期期末预测试题含解析
- 公路货运行业2025数字化转型与智能化配送效率报告
- 公路货运行业数字化转型中的物流园区智慧物流系统建设与运营报告
- 智能电网建设下的卫星物联网数据存证解决方案探讨
- 企业家创业经历与管理智慧分享记录
- 形体礼仪教学培训课件
- 油田设备资产管理办法
- 动火切割安全协议书
- 免疫药物的处方审核思路与用药指导
- 《空压机节能技术及应用》课件
- 2025-2030年中国塑料制品行业产销需求及投资前景预测研究报告
- 2025年留置辅警面试题目及答案
- 工伤预防培训
- 呼伦贝尔农垦集团有限公司招聘考试真题2024
- 陕投集团招聘笔试真题答案下载版
- 设备管理考试题及答案
- 《教育强国建设规划纲要(2024-2035)》解读与培训
- 2023年高考真题-物理(广东卷) 含答案
评论
0/150
提交评论