3MCS-51单片机指令系统及汇编语言程序设计.ppt
《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单单片
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS 51 单片机 指令系统 汇编语言 程序设计
限制150内