3MCS-51单片机指令系统及汇编语言程序设计.ppt

上传人:qwe****56 文档编号:70023238 上传时间:2023-01-14 格式:PPT 页数:149 大小:3.61MB
返回 下载 相关 举报
3MCS-51单片机指令系统及汇编语言程序设计.ppt_第1页
第1页 / 共149页
3MCS-51单片机指令系统及汇编语言程序设计.ppt_第2页
第2页 / 共149页
点击查看更多>>
资源描述

《3MCS-51单片机指令系统及汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《3MCS-51单片机指令系统及汇编语言程序设计.ppt(149页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统与汇编语言程序设计与汇编语言程序设计主要内容:主要内容:介绍介绍 MCS-51MCS-51单片机的寻址方式、指令系统、单片机的寻址方式、指令系统、基本程序结构及汇编语言的开发和调试。基本程序结构及汇编语言的开发和调试。重点重点在在于寻址方式、各种指令的应用、程序设计的规范、于寻址方式、各种指令的应用、程序设计的规范、程序设计的思想及典型程序的理解和掌握。程序设计的思想及典型程序的理解和掌握。难点难点在于控制转移、位操作指令的理解及各种指令的在于控制转移、位操作指令的理解及各种指令的灵活应用,以及程序设计的基本方法和针对具体灵活

2、应用,以及程序设计的基本方法和针对具体的硬件设计出最合理的软件。的硬件设计出最合理的软件。13.1 指令系统概述3.1.1 3.1.1 指令指令 指指令令是是指指挥挥计计算算机机工工作作的的命命令令。一一种种计计算算机机所所能执行的指令集合称之为能执行的指令集合称之为计算机指令系统。计算机指令系统。MCSMCS5151单片机主要有单片机主要有两种指令形式两种指令形式:机器语言指令机器语言指令 汇编语言指令。汇编语言指令。2一、机器语言指令一、机器语言指令一、机器语言指令一、机器语言指令用二进制代码表示的指令称为用二进制代码表示的指令称为机器语言指令机器语言指令,也称机器码。,也称机器码。例如例

3、如:“:“累加器累加器A A加加1”1”指令用二进制数表示时,是指令用二进制数表示时,是“00000100”00000100”,在程序存储器中占用一个字节单元。,在程序存储器中占用一个字节单元。二、汇编语言指令二、汇编语言指令二、汇编语言指令二、汇编语言指令 用容易记忆的缩写符号表示机器语言指令就是用容易记忆的缩写符号表示机器语言指令就是汇编语言汇编语言指令指令。例如,。例如,“A A加加B”B”用英语写出来是用英语写出来是“Add B to A”Add B to A”,缩,缩写成写成“ADD AADD A,B”B”。这个。这个“ADD AADD A,B”B”就是汇编语言指令。就是汇编语言指令

4、。MCS-51MCS-51单片机的开发商约定:单片机的开发商约定:“ADD AADD A,B”B”与与25F0H25F0H对应。我对应。我们将们将“ADD”ADD”缩写符号称为缩写符号称为“助记符助记符”。编写机器语言程序实质上就是用汇编语言编写程序。编写机器语言程序实质上就是用汇编语言编写程序。汇编语言指令汇编语言指令 机器语言指令机器语言指令 MOV A,#0AH 74H 0AH ADD A,#14H 24H 14H33.1.2 80513.1.2 8051汇编语言指令汇编语言指令一、指令组成:一、指令组成:操作码助记符操作码助记符 操作数操作数括号内的部分是可选项。括号内的部分是可选项。

5、每个字段之间要用分隔每个字段之间要用分隔符分隔,可以用作分隔符分隔,可以用作分隔符的符号有空格、冒号、符的符号有空格、冒号、逗号、分号等。逗号、分号等。二、指令格式:二、指令格式:标号:标号:操作码操作码 目的操作数目的操作数,源操作数,源操作数;注释注释 LOOPLOOP:MOV AMOV A,3AH 3AH ;(A A)(3AH)(3AH)41 1 1 1标号标号标号标号 标号标号是是语句地址的标志符号,代表该语句语句地址的标志符号,代表该语句指指令代码第一个字节的地址令代码第一个字节的地址。(1)(1)标号由标号由1 18 8个个ASCIIASCII字符组成,且第一个字符组成,且第一个字

6、符必须是字母,其余字符可以是字母、数字或字符必须是字母,其余字符可以是字母、数字或其他特定字符。其他特定字符。(2)(2)不能使用该汇编语言已经定义了的符号作不能使用该汇编语言已经定义了的符号作为标号。如指令助记符、寄存器符号名称等。为标号。如指令助记符、寄存器符号名称等。(3)(3)标号后必须跟冒号。标号后必须跟冒号。2 2操作码操作码 操作码用于规定语句执行的操作。它是汇编操作码用于规定语句执行的操作。它是汇编语句中语句中唯一不能空缺唯一不能空缺的部分,也是语句的的部分,也是语句的核心核心,它用指令助记符表示。它用指令助记符表示。53 3 3 3操作数操作数操作数操作数操作数操作数用于给指

7、令的操作提供数据或地址。用于给指令的操作提供数据或地址。在一条汇编语在一条汇编语句中操作数可能是空缺的,也可能包括一项,还可能包括两项句中操作数可能是空缺的,也可能包括一项,还可能包括两项或三项。当有多个操作数时,或三项。当有多个操作数时,各操作数间以逗号分隔。各操作数间以逗号分隔。(1)(1)工作寄存器名。工作寄存器名。(2)(2)特殊功能寄存器名。特殊功能寄存器名。(3)(3)标号名。标号名。(4)(4)常数。常数。(5)(5)符号符号“$”$”,表示程序计数器,表示程序计数器PCPC的当前值。的当前值。(6)(6)表达式。表达式。4 4注释注释 注释不属于汇编语句的功能部分,它注释不属于

8、汇编语句的功能部分,它只是对语句的说明。只是对语句的说明。注释字段可以增加程序的可读性,有助于编程人员的阅读和维注释字段可以增加程序的可读性,有助于编程人员的阅读和维护。注释字段护。注释字段必须以分号必须以分号“;”开头,开头,长度不限,可以换行接长度不限,可以换行接着书写,但换行时应注意在开头使用分号着书写,但换行时应注意在开头使用分号“;”。6三、三、三、三、指令中的常用符号指令中的常用符号指令中的常用符号指令中的常用符号 RnRn(n=0n=07 7):):表示当前工作寄存器表示当前工作寄存器R0R0R7R7中的任一个寄存器。中的任一个寄存器。R Ri i(i=0i=0或或1 1):表表

9、示示通通用用寄寄存存器器组组中中用用于于间间接接寻寻址址的的两两个个寄寄存存器器R0,R1R0,R1。#data#data:表示表示8 8位直接参与操作的立即数。位直接参与操作的立即数。#data16#data16:表示表示1616位直接参与操作的立即数。位直接参与操作的立即数。directdirect:表示片内表示片内RAMRAM的的8 8位单元地址。位单元地址。addr11addr11:表示表示1111位目的地址,主要用于位目的地址,主要用于ACALLACALL和和AJMPAJMP指令中。指令中。addr16addr16:表示表示1616位目的地址,主要用于位目的地址,主要用于LCALLL

10、CALL和和LJMPLJMP指令中。指令中。relrel:用用补补码码形形式式表表示示的的8 8位位二二进进制制地地址址偏偏移移量量,取取值值范范围围为为 128128+127+127,主主要要用用于于相相对对转转移移指指令令,以以形形成成转转移移的的目目的的地地址。址。DPTRDPTR:数据指针,用于寄存器间接寻址方式和变址寻址方式。数据指针,用于寄存器间接寻址方式和变址寻址方式。7 bitbit:表示片内表示片内RAMRAM位寻址区或者是可以位寻址的位寻址区或者是可以位寻址的SFRSFR的位地址。的位地址。A A(或(或ACCACC)、)、B B:表示累加器、表示累加器、B B寄存器。寄存

11、器。C C:表示表示PSWPSW中的进位标志位中的进位标志位C Cy y。:在间接寻址方式中,表示间接寻址寄存器指针的前缀标志。在间接寻址方式中,表示间接寻址寄存器指针的前缀标志。$:表示当前的指令地址。:表示当前的指令地址。/:位操作数的前缀,表示对该位取反。:位操作数的前缀,表示对该位取反。(X X):):表示由表示由X X所指定的某寄存器或某单元中的内容。所指定的某寄存器或某单元中的内容。(X)(X):表示由表示由X X间接寻址单元中的内容。间接寻址单元中的内容。:表示指令的操作结果是将箭头右边的内容传送到左边。:表示指令的操作结果是将箭头右边的内容传送到左边。:表示指令的操作结果是将箭

12、头左边的内容传送到右边。:表示指令的操作结果是将箭头左边的内容传送到右边。、:表示逻辑或、与、异或。:表示逻辑或、与、异或。:表示数据交换。:表示数据交换。83.1.3 MCS-513.1.3 MCS-513.1.3 MCS-513.1.3 MCS-51单片机指令系统的分类(单片机指令系统的分类(单片机指令系统的分类(单片机指令系统的分类(111111111111条)条)条)条)一、一、按指令所占存储器字节数分按指令所占存储器字节数分:(1 1)单字节指令(单字节指令(4949条)条)(2 2)双字节指令(双字节指令(4646条)条)(3 3)三字节指令(三字节指令(1616条)条)三、按指令

13、功能分:三、按指令功能分:(1 1)数据传送指令(数据传送指令(2929条)条)(2 2)算术运算指令(算术运算指令(2424条)条)(3 3)逻辑运算指令(逻辑运算指令(2424条)条)(4 4)控制转移类指令(控制转移类指令(1717条)条)(5 5)位操作指令(位操作指令(1717条)条)二、按指令执行周期数分:二、按指令执行周期数分:(1 1)单周期指令(单周期指令(6464条)条)(2 2)双周期指令(双周期指令(4545条)条)(3 3)四周期指令(四周期指令(2 2条)条)9 寻寻址址方方式式:在在计计算算机机中中,说说明明操操作作数数所所在在地地址址的的方方法法称称为为操作数操

14、作数的寻址方式。的寻址方式。计计算算机机执执行行程程序序实实际际上上是是在在不不断断寻寻找找操操作作数数并并进进行行操操作作的过程。的过程。每每种种计计算算机机在在设设计计时时已已决决定定了了它它具具有有哪哪些些寻寻址址方方式式,寻寻址方式越多,计算机的灵活性越强,指令系统也就越复杂。址方式越多,计算机的灵活性越强,指令系统也就越复杂。MCS-51MCS-51单单片片机机的的指指令令系系统统提提供供了了7 7种种寻寻址址方方式式,分分别别为为立立即即寻寻址址、直直接接寻寻址址、寄寄存存器器寻寻址址、寄寄存存器器间间接接寻寻址址、变变址址寻寻址、相对寻址址、相对寻址和和位寻址位寻址。一条指令可能

15、含多种寻址方式。一条指令可能含多种寻址方式。3.2 MCS-513.2 MCS-51单片机的寻址方式单片机的寻址方式 10寻址方式寻址方式寻址方式寻址方式我的信在她我的信在她我的信在她我的信在她那那那那!找信找信找信找信去去去去!注:找信是寻找信的“地址”!寻寻址址方方式式,就就是是指指如如何何找找到到存存放放被被操操作作数数据据的的位位置置(地地址址)的的方法。方法。111 1 1 1立即寻址立即寻址立即寻址立即寻址定义:定义:将立即参与操作的数据直接写在指令中,这种寻址方将立即参与操作的数据直接写在指令中,这种寻址方式称为立即寻址。式称为立即寻址。特点:特点:指令中直接含有所需的操作数。该

16、操作数可以是指令中直接含有所需的操作数。该操作数可以是8 8位位的,也可以是的,也可以是1616位的,常常处在指令的第二字节和第三字节的位位的,常常处在指令的第二字节和第三字节的位置上。立即数通常使用置上。立即数通常使用#data#data或或#data16#data16表示,在立即数前面表示,在立即数前面加加“#”#”标志,用以和直接寻址中的直接地址(标志,用以和直接寻址中的直接地址(direcdirec或或bitbit)相区)相区别。别。目的地目的地MOV A,#30H速递快信速递快信A12这类指令大都是双字节指令,仅有指令:这类指令大都是双字节指令,仅有指令:MOV MOV DPTRDP

17、TR,#DATA16#DATA16是三字节指令,它提供两字节立即是三字节指令,它提供两字节立即数,如:数,如:MOV DRTRMOV DRTR,#1600H#1600H,它的机器指令格式它的机器指令格式下所示:下所示:1 0 0 1 0 0 0 01 0 0 1 0 0 0 00 0 0 1 0 1 1 00 0 0 1 0 1 1 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0使使用用专专用用的的汇汇编编程程序序把把编编写写的的汇汇编编语语言言源源程程序序汇汇编编成成机机器器语语言言程程序序,对对立立即即数数的的书书写写一一般般有有要要求求:对对于于单单字字节节立立即即数数,

18、若若数数值值大大于于等等于于A0HA0H,则则要要在在其其前前面面加加一一个个0 0,如如指指令令“MOVMOVA A,0A0H”0A0H”,该该指指令令含含义义是是把把立立即即数数A0HA0H送送累累计计器器;对对于于双双字字节节立立即即数数,若若数数值值大大于于等等于于A000HA000H,则则要要在在其其前前面面加加一一个个0 0。对于直接地址和偏移量也按相同方法书写。对于直接地址和偏移量也按相同方法书写。第一位数字第一位数字是是A-FA-F时请时请在其前加在其前加0 0132.2.2.2.直接寻址直接寻址直接寻址直接寻址定义:定义:将操作数的地址直接存放在指令中,这种寻址方式称为将操作

19、数的地址直接存放在指令中,这种寻址方式称为直接寻址。直接寻址。特点:特点:指令中含有操作数的地址。该地址指出了参与操作的数指令中含有操作数的地址。该地址指出了参与操作的数据所在的字节单元地址或位地址。计算机执行它们时便可根据所在的字节单元地址或位地址。计算机执行它们时便可根据直接地址找到所需要的操作数。据直接地址找到所需要的操作数。寻址范围:寻址范围:ROMROM、片内、片内RAMRAM区、区、SFRSFR和位地址空间。和位地址空间。XXH目的地目的地ROM、内部RAMSFRXXHMOV A,3AH14例:例:MOV AMOV A,3AH3AH操作码直接地址APC程序存储器1110010100

20、111010PC+1内部RAM3AH39H100111111153.3.3.3.寄存器寻址寄存器寻址寄存器寻址寄存器寻址定义:定义:操作数存放在操作数存放在MCS-51MCS-51内部的某个工作寄存器内部的某个工作寄存器RnRn(R0R0R7R7)或部分专用寄存器中,这种寻址方式称为寄存器寻址。或部分专用寄存器中,这种寻址方式称为寄存器寻址。特点:特点:由指令指出某一个寄存器的内容作为操作数。存放操作由指令指出某一个寄存器的内容作为操作数。存放操作数的寄存器在指令代码中不占据单独的一个字节,而是嵌入数的寄存器在指令代码中不占据单独的一个字节,而是嵌入(隐含)到操作码字节中。(隐含)到操作码字节

21、中。寻址范围:寻址范围:四组通用寄存器组四组通用寄存器组RnRn(R0R0R7R7)、部分专用寄存器()、部分专用寄存器(A,B,DPTR,Cy A,B,DPTR,Cy)。)。寄存器寄存器目的地目的地R0R7ABDPTR、CYMOV A,R1164 4 4 4寄存器间接寻址寄存器间接寻址寄存器间接寻址寄存器间接寻址定义:定义:指令给出的寄存器中存放的是指令给出的寄存器中存放的是操作数的地址。操作数的地址。这种寻址方式称为寄存器间接寻址,简称为寄存器这种寻址方式称为寄存器间接寻址,简称为寄存器间址。间址。特特点点:指指令令给给出出的的寄寄存存器器中中存存放放的的是是操操作作数数地地址址。寄寄存存

22、器器间间接接寻寻址址是是一一种种二二次次寻寻找找操操作作数数地地址址的的寻寻址址方方式式,寄寄存存器器前前边边必必须须加加前前缀缀符符号号“”。不不能能用用于于寻寻址特殊功能寄存器址特殊功能寄存器SFRSFR。寻寻址址范范围围:内内部部RAMRAM低低128B128B(只只能能使使用用R0R0或或R1R1作作间间址址寄寄存存器器)、外外部部RAMRAM(只只能能使使用用DPTRDPTR作作间间址址寄寄存存器器)。对对于于外外部部低低256256单单元元RAMRAM的的访访问问,除除可可以以使使用用DPTRDPTR外外,还可以使用还可以使用R0R0或或R1R1作间址寄存器(提供低作间址寄存器(提

23、供低8 8位地址)。位地址)。17XXH目的地目的地R0、R1DPTRMOV A,R1信在信在XXH中中寄存器寄存器可寻址内部RAM128B、外部RAM寻址DPTR18MOV A,R0PC操作码程序存储器11100110.内部4765H65H65HR0R0.A195变址寻址(基址变址寄存器间接寻址)定定义义:操操作作数数存存放放在在变变址址寄寄存存器器(累累加加器器A A)和和基基址址寄寄存存器器(DPTRDPTR或或PCPC)相相加加形形成成的的1616位位地地址址单单元元中中。这这种种寻寻址址方式称为基址加变址寄存器间接寻址,简称为变址寻址。方式称为基址加变址寄存器间接寻址,简称为变址寻址

24、。基址寄存器基址寄存器基址寄存器基址寄存器1000H1000HPCDPTRA程序存储器程序存储器65H65H.1000H+30H1030H3065HMOVC A,A+PC ;MOVC A,A+PC ;(A A)(A A)+(PCPC)+1+1 MOVC A,A+DPTR;MOVC A,A+DPTR;(A A)(A A)+(DPTRDPTR)20 特特点点:指指令令操操作作码码中中隐隐含含作作为为基基址址寄寄存存器器用用的的DPTRDPTR(或或PC PC)和和作作为为变变址址用用的的累累加加器器A A。在在执执行行变变址址寻寻址址指指令令时时,MCS-MCS-5151单单片片机机先先把把基基地

25、地址址(DPTRDPTR或或PC PC 的的内内容容)和和地地址址偏偏移移量量(A A的的内内容容)相相加加,以以形形成成操操作作数数地地址址,再再由由操操作作数数地地址址找找到到操操作作数数,并并完完成成相相应应的的操操作作。变变址址寻寻址址方方式式是是单单字字节节指指令。令。寻寻址址范范围围:只只能能对对程程序序存存储储器器ROMROM进进行行寻寻址址,主主要要用用于于查查表性质的访问。表性质的访问。注注意意:累累加加器器A A中中存存放放的的操操作作数数地地址址相相对对基基地地址址的的偏偏移移量量的的范范围围为为00H00HFFHFFH(无无符符号号数数)。MCS-51MCS-51单单片

26、片机机共共有有以以下下三条变址寻址指令:三条变址寻址指令:MOVC A,A+PCMOVC A,A+PC;(A A)(A A)+(PCPC)+1+1 MOVC A,A+DPTR ;MOVC A,A+DPTR ;(A A)(A A)+(DPTRDPTR)JMP A+DPTR ;JMP A+DPTR ;(PCPC)(A A)+(DPTRDPTR)216.6.相对寻址相对寻址定定义义:将将程程序序计计数数器器PCPC的的当当前前值值(取取出出本本条条指指令令后后的的PCPC值值)与与指指令令第第二二个个字字节节给给出出的的偏偏移移量量(relrel)相相加加,形形成成新新的的转转移移目目标标地地址。称

27、为相对寻址方式。址。称为相对寻址方式。特特点点:相相对对寻寻址址方方式式是是为为实实现现程程序序的的相相对对转转移移而而设设计计的的,为为相相对对转转移移指指令令所所使使用用,其其指指令令码码中中含含有有相相对对地地址址偏偏移移量量,能能生生成成浮浮动动代码。代码。如:如:SJMPrel;(PC)(PC)+2+rel相对转移指令的目的地址指令地址指令字节数偏移量相对转移指令的目的地址指令地址指令字节数偏移量寻寻址址范范围围:只只能能对对程程序序存存储储器器ROM进进行行寻寻址址。相相对对地地址址偏偏移移量量(rel)是是一一个个带带符符号号的的8位位二二进进制制补补码码,其其取取值值范范围围为

28、为 128127(以(以PC为中间的为中间的256个字节范围)。个字节范围)。22 以当前的以当前的PCPC值加上指令中给值加上指令中给出的相对偏移量出的相对偏移量relrel而形成转移而形成转移目的地址的寻址方式。目的地址的寻址方式。2000H+02H+28HSJMP 28H202AH程序存储器程序存储器2000H2002H源源地地址址目的目的地址地址rel转移指令本身字节数转移指令本身字节数relrel是有符号的是有符号的8 8位二进制数,位二进制数,用补码表示。用补码表示。相对偏移在相对偏移在127127128128字字节单元之间。节单元之间。237.7.位寻址位寻址定定义义:指指令令中

29、中给给出出的的操操作作数数是是一一个个可可单单独独寻寻址址的的位位地地址址,这这种种寻寻址方式称为位寻址方式。址方式称为位寻址方式。特特点点:位位寻寻址址是是直直接接寻寻址址方方式式的的一一种种,其其特特点点是是对对8 8位位二二进进制制数数中的某一位的地址进行操作。中的某一位的地址进行操作。寻寻址址范范围围:片片内内RAMRAM低低128B128B中中位位寻寻址址区区、部部分分SFRSFR(其其中中有有8383位位可可以位寻址)。以位寻址)。可位寻址的位地址的表示形式如下:可位寻址的位地址的表示形式如下:(1 1)直接使用位地址形式。)直接使用位地址形式。如:如:MOV 00H,C ;MOV

30、 00H,C ;(00H00H)(C Cy y)其中:其中:00H00H是片内是片内RAMRAM中中20H20H地址单元的第地址单元的第0 0位。位。24(2 2)字节地址加位序号的形式。)字节地址加位序号的形式。如:如:MOV 20H.0,C ;MOV 20H.0,C ;(20H.020H.0)(C Cy y)其中:其中:20H.020H.0是片内是片内RAMRAM中中20H20H地址单元的第地址单元的第0 0位。位。(3 3)位位的的符符号号地地址址(位位名名称称)的的形形式式。对对于于部部分分特特殊殊功功能能寄寄存存器器,其其各各位位均均有有一一个个特特定定的的名名字字,所所以以可可以以

31、用用它它们们的的位位名名称称来来访问该位。如:访问该位。如:ANL C,P ;ANL C,P ;(C C)(C C)(P P)其中:其中:P P是是PSWPSW的第的第0 0位,位,C C是是PSWPSW的第的第7 7位。位。(4 4)字字节节符符号号地地址址(字字节节名名称称)加加位位序序号号的的形形式式。对对于于部部分分特特殊殊功功能能寄寄存存器器(如如状状态态标标志志寄寄存存器器PSWPSW),还还可可以以用用其其字字节节名名称称加位序号形式来访问某一位。如:加位序号形式来访问某一位。如:CPL PSW.6 ;CPL PSW.6 ;(ACAC)(/AC /AC )其中:其中:PSW.6P

32、SW.6表示该位是表示该位是PSWPSW的第的第6 6位。位。25位寻址适用于可以进行单独位操作的指令,指令中直位寻址适用于可以进行单独位操作的指令,指令中直接给出位地址寻找位操作数。参与操作的数据是接给出位地址寻找位操作数。参与操作的数据是bitbit而不而不是是1B1B。位地址用位地址用bitbit表示,以区别字节地址表示,以区别字节地址directdirect。PC PC PC+1PC+11010001000110111程序存储器程序存储器操操作作码码0 0Cy AC FO RSI RS0 OV PPSW内部内部RAMRAM位地址空间位地址空间26H 37 36 35 34 33 32

33、31 30 MOV C,37H0 026例例例例3-13-13-13-1 将将将将D5HD5HD5HD5H位的内容送入位的内容送入位的内容送入位的内容送入CyCyCyCy,可用几种方式表达?可用几种方式表达?可用几种方式表达?可用几种方式表达?解:解:有以下有以下4 4种:种:(1 1)MOV CMOV C,0D5H0D5H(2 2)MOV CMOV C,0D0H.50D0H.5(3 3)MOV CMOV C,F0F0(4 4)MOV CMOV C,PSW.5PSW.5举例:举例:27例例3-23-2 判断下列指令各操作数的寻址方式判断下列指令各操作数的寻址方式(1)MOV A(1)MOV A

34、,#65H#65H(2)MOV R1(2)MOV R1,65H65H(3)MOV 30H(3)MOV 30H,R2R2(4)MOV C(4)MOV C,20H20H(5)DJNZ R2(5)DJNZ R2,relrel(6)MOV 60H(6)MOV 60H,R1R1(7)MOVC A(7)MOVC A,A+PCA+PC 寄存器寻址寄存器寻址变址寻址变址寻址直接寻址直接寻址寄存器间接寻址寄存器间接寻址寄存器寻址寄存器寻址相对寻址相对寻址位寻址位寻址位寻址位寻址直接寻址直接寻址寄存器寻址寄存器寻址寄存器间接寻址寄存器间接寻址直接寻址直接寻址寄存器寻址寄存器寻址立即寻址立即寻址解:解:283.3

35、MCS-51单片机的指令系统 MCS-51MCS-51指指令令系系统统使使用用4444种种助助记记符符,它它们们代代表表着着3333种种功功能能,可可以以实实现现5151种种操操作作。指指令令助助记记符符与与操操作作数数的的各各种种可可能能的的寻寻址址方方式式的的结结合合一一共共可可构构造造出出111111条条指令。指令。MCS-51MCS-51单单片片机机指指令令系系统统按按其其功功能能可可分分为为数数据据传传送送类类指指令令、算算术术运运算算类类指指令令、逻逻辑辑运运算算和和移移位位类类指指令、控制转移类指令和位操作类指令五大类。令、控制转移类指令和位操作类指令五大类。29学习指令系统时,

36、应注意:学习指令系统时,应注意:(1 1)指令的格式、功能)指令的格式、功能 。(2 2)操作码的含义,操作数的表示方法。)操作码的含义,操作数的表示方法。(3 3)寻址方式,源、目的操作数的范围。)寻址方式,源、目的操作数的范围。(4 4)对标志位的影响。)对标志位的影响。(5 5)指令的适用范围。)指令的适用范围。(6 6)正确估算指令的字节数。)正确估算指令的字节数。一一般般地地,操操作作码码占占1 1字字节节;操操作作数数中中,直直接接地地址址derictderict占占1 1字字节节,#data#data占占1 1字字节节,#data16#data16占占两两字字节节;操操作作数数中

37、中的的A A、B B、R0R0R7R7、R Ri i、DPTRDPTR、A+A+DPTRDPTR、A+A+PCPC等等均均隐隐含含在在操作码中。操作码中。303.3.1 3.3.1 数据传送指令数据传送指令(2929条)条)CPUCPU在在进进行行算算术术和和逻逻辑辑操操作作时时,绝绝大大多多数数指指令令都都有有操作数,所以数据传送是一种最基本、最主要的操作。操作数,所以数据传送是一种最基本、最主要的操作。数数据据传传送送指指令令共共2929条条,可可分分为为内内部部RAMRAM数数据据传传送送、外外部部RAMRAM数数据据传传送送、程程序序存存储储器器数数据据传传送送、数数据据交交换换和和堆

38、栈操作等五类。堆栈操作等五类。寻址范围:寻址范围:累加器累加器A A、片内片内RAMRAM、SFRSFR、片外片外RAMRAM。功能功能:(目的地址)目的地址)(源地址)。(源地址)。源地址单元的内容不变。源地址单元的内容不变。对对标标志志位位的的影影响响:除除以以累累加加器器A A为为目目的的操操作作数数的的数数据传送指令对据传送指令对P P标志位有影响外,其余均不影响标志位。标志位有影响外,其余均不影响标志位。31目的地址目的地址目的地址目的地址源地址源地址源地址源地址数数数数 据据据据MOVMOV ,MOV A,#20H,A ARnRndirect1direct1RiRiA ARnRnd

39、irect2direct2RiRi#data#dataMOVMOV20H20HA A一、内部一、内部一、内部一、内部RAMRAMRAMRAM数据传送指令数据传送指令数据传送指令数据传送指令(16(16(16(16条条条条)MOV DPTR,#data1632 二、外部数据传送指令二、外部数据传送指令二、外部数据传送指令二、外部数据传送指令(4(4(4(4条条条条)MOVX MOVX ,,A ADPTRDPTRRiRiMOVXMOVXA ADPTRDPTRRiRi CPUCPU与外部数据存储器之间进行数据传送时,必须使用外与外部数据存储器之间进行数据传送时,必须使用外部传送指令,只能通过累加器部

40、传送指令,只能通过累加器A A,采用寄存器间接寻址(用,采用寄存器间接寻址(用R0,R1R0,R1和和DPTRDPTR三个间接寻址的寄存器)方式完成。三个间接寻址的寄存器)方式完成。其中:其中:RiRi(R0,R1R0,R1)只能访问片外)只能访问片外RAMRAM的低的低256256个单元;个单元;DPTRDPTR可以访问片外可以访问片外RAMRAM的全部的全部64KB64KB的空间。的空间。33三、程序存储器数据传送指令(查表指令)(三、程序存储器数据传送指令(查表指令)(三、程序存储器数据传送指令(查表指令)(三、程序存储器数据传送指令(查表指令)(2 2 2 2条)条)条)条)程程序序存

41、存储储器器的的数数据据传传送送是是单单向向的的,并并且且只只能能读读到到累累加加器器A A中中。这类指令专门用于查表,又称为查表指令。这类指令专门用于查表,又称为查表指令。MOVC A,A+DPTP ;(A)(A)+(DPTR)MOVC A,A+PC ;(PC)(PC)+1,(,(A)(A)+(PC)两条指令的异同:两条指令的异同:其功能完全相同,但使用中存在着差异。其功能完全相同,但使用中存在着差异。1.1.查表的位置要求不同查表的位置要求不同 采采用用DPTR作作为为基基地地址址寄寄存存器器,表表可可以以放放在在64KB程程序序存存储储器空间的任何地址,使用方便,故称为远程查表。器空间的任

42、何地址,使用方便,故称为远程查表。采采用用PC作作为为基基地地址址寄寄存存器器,具具体体的的表表在在程程序序存存储储器器中中只只能能在在查查表表指指令令后后的的256B的的地地址址空空间间中中,使使用用有有限限制制,故故称称为为近近程程查表。查表。342.2.偏移量的计算方法不同偏移量的计算方法不同 采采用用DPTRDPTR作作为为基基地地址址寄寄存存器器,查查表表地地址址为为(A A)+(DPTRDPTR)。采采用用PCPC作作为为基基地地址址寄寄存存器器,查查表表地地址址为为(A A)+(PCPC)+1+1。因因此此偏偏移移量量的的计计算算方方法不同。法不同。采采用用DPTRDPTR作作为

43、为基基地地址址寄寄存存器器,A A为为欲欲查查数数值值距距离离表表首首地地址址的的值值;采采用用PCPC作作为为基基地地址址寄寄存存器器,A A的值必须预先设置为:的值必须预先设置为:A A的值的值=表首地址当前指令的表首地址当前指令的PCPC值值1 135四、堆栈操作指令四、堆栈操作指令四、堆栈操作指令四、堆栈操作指令(2(2(2(2条条条条)PUSH PUSH direct direct;SP(SP)+1,(SP)(direct)POP POP directdirect;(direct)(SP),SP(SP)1SPSP(SP)+1SPPUSH ACC(ACCACC)SPSPSP(SP)-1

44、POP ACC(SPSP)ACC 堆栈操作指令是一种特殊的数据传送指令,是根据栈指堆栈操作指令是一种特殊的数据传送指令,是根据栈指针针SPSP中的栈顶地址进行数据操作。堆栈操作指令的实质是以中的栈顶地址进行数据操作。堆栈操作指令的实质是以栈指针栈指针SPSP为间址寄存器的间址寻址方式。堆栈区应避开使用为间址寄存器的间址寻址方式。堆栈区应避开使用工作寄存器区和其他需要使用的数据区,系统复位后,工作寄存器区和其他需要使用的数据区,系统复位后,SPSP的的初始值为初始值为07H07H。为了避免重叠,一般初始化时要重新设置。为了避免重叠,一般初始化时要重新设置SPSP。36功能:功能:实现实现RAMR

45、AM单元数据送入栈顶或由栈顶取出数据送至单元数据送入栈顶或由栈顶取出数据送至RAMRAM单单元。元。适用场合:适用场合:用于执行中断、子程序调用、参数传递等程序的断用于执行中断、子程序调用、参数传递等程序的断点保护和现场保护。点保护和现场保护。书写方式:书写方式:堆栈操作指令是直接寻址指令,直接地址不能是寄堆栈操作指令是直接寻址指令,直接地址不能是寄存器名,因此应注意指令的书写格式。例如:存器名,因此应注意指令的书写格式。例如:PUSH ACCPUSH ACC(不能写成不能写成PUSH APUSH A)POP 00H POP 00H (不能写成不能写成POP R0POP R0)37五、数据交换

46、指令五、数据交换指令五、数据交换指令五、数据交换指令(5(5(5(5条条条条),A AXCH XCH directdirectRnRnRiRiXCH A,R7()()()()SWAP A0 111XCHD A,Ri1 0 1 1383.3.2 3.3.2 3.3.2 3.3.2 算术运算指令(算术运算指令(算术运算指令(算术运算指令(24242424条)条)条)条)一、一、一、一、加法指令加法指令加法指令加法指令(条条条条)directdirectA A ,RnRnRiRi#data#dataADD ADD 算术运算指令的两个参与运算的操作数,一个存放在累加算术运算指令的两个参与运算的操作数,

47、一个存放在累加器器A A中(此操作数也为目的操作数);另一个存放在中(此操作数也为目的操作数);另一个存放在R0R0R7R7或或 RiRi(片内(片内RAMRAM)中,或是)中,或是#data#data(立即数)。(立即数)。算术运算指令可以分为加法指令、带进位的加法指令、算术运算指令可以分为加法指令、带进位的加法指令、带借位的减法指令、十进制调整指令、加带借位的减法指令、十进制调整指令、加1 1指令、减指令、减1 1指令、指令、乘除指令。乘除指令。注:注:ADDADD对对PSWPSW中的所有标志位均产生影响。中的所有标志位均产生影响。39二、二、二、二、带进位的加法指令带进位的加法指令带进位

48、的加法指令带进位的加法指令(条条条条)directdirectA A ,RnRnRiRi#data#dataADDC ADDC 注:注:ADDCADDC对对PSWPSW中的所有标志位均产生影响。中的所有标志位均产生影响。40三、带借位的三、带借位的三、带借位的三、带借位的减法指令减法指令减法指令减法指令(条条条条)directdirectA A ,RnRnRiRi#data#dataSUBBSUBB1 1 1 0 1 1 0 11 0 1 0 1 1 1 0CYSUBB A,R0(A)(R0)此位相减需此位相减需借位时借位时,值值CY位为位为”1”此位相减需借此位相减需借位时位时,值值AC位位

49、为为”1”此两位有一位需借此两位有一位需借位位,另一位没有另一位没有,值值OV位为位为”1”注意:注意:SUBBSUBB对对PSWPSW中的所有标志位均产生影响。中的所有标志位均产生影响。MCS-51MCS-51指令系统中没有不带借位的减法指令,欲实现不带指令系统中没有不带借位的减法指令,欲实现不带借位的减法计算,应预先置借位的减法计算,应预先置Cy=0Cy=0(利用(利用CLR CCLR C指令),然后利指令),然后利用带借位的减法指令用带借位的减法指令SUBBSUBB实现计算。实现计算。41四、加四、加四、加四、加1 1指令指令指令指令(5(5(5(5条条条条)又称又称又称又称增量指令增量

50、指令 五、五、五、五、减减减减“”指令指令指令指令(4(4(4(4条条条条)又称又称又称又称减量指令减量指令INC ARnDirectRiDPTRDEC ARnDirectRi注:注:以上两条指令只是对累加器以上两条指令只是对累加器A A操作时影响操作时影响P P标志位。标志位。42六、乘法指令六、乘法指令六、乘法指令六、乘法指令(1(1(1(1条条条条)MUL MUL A BA BDIV DIV A BA B七、除法指令七、除法指令七、除法指令七、除法指令(1(1(1(1条条条条)注:注:累加器和寄存器中的位累加器和寄存器中的位无符号整数无符号整数相乘,相乘,其位积的其位积的低位字节放低位字

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

当前位置:首页 > 技术资料 > 其他杂项

本站为文档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