单片机原理与应用-第二章.ppt
《单片机原理与应用-第二章.ppt》由会员分享,可在线阅读,更多相关《单片机原理与应用-第二章.ppt(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章第二章 MCS-51指令系统指令系统2.1 MCS-51指令系统的分类及一般说明2.2 数据传送类指令2.3 算术操作类指令2.4 逻辑操作类指令2.5 控制程序转移类指令2.6 布尔变量操作类指令2.7 小结每条指令在执行时要花去一定的每条指令在执行时要花去一定的时间时间,以机器,以机器周期为单位。按周期为单位。按指令执行时间指令执行时间分类:分类:单周期单周期(64(64条条););双周期双周期(45(45条条);4);4周期周期(2(2条条)按指令的按指令的功能功能分类,可分为分类,可分为5 5大类:大类:数据传送类(数据传送类(2929条);算术运算类(条);算术运算类(2424
2、条)条)逻辑运算及移位类(逻辑运算及移位类(2424);控制转移类();控制转移类(1717条)条)位操作类(位操作类(1717条)条)每条指令在程序存储器每条指令在程序存储器ROMROM中占据一定的中占据一定的空间空间,以字节为单位。按指令以字节为单位。按指令所占字节数所占字节数分类:分类:单字节单字节(49(49条条););双字节双字节(46(46条条);3);3字节字节(16(16条条)2.1 MCS-51指令系统的分类和一般说明指令系统的分类和一般说明标号:操作码标号:操作码 操作数;注释操作数;注释 一、一、指令基本格式指令基本格式方括符方括符 表示可选项表示可选项标号代表指令所在地
3、址,标号代表指令所在地址,1-81-8个字母个字母/数字,数字,“:”:”结尾结尾 标号标号:操作码操作码 目的操作数目的操作数,源操作数源操作数;注释注释 START:MOV A,#30H START:MOV A,#30H ;将立即数将立即数30H30H传送至传送至A A中中 MOV DPTR,#5678H MOV DPTR,#5678H;将立即数将立即数5678H5678H传送至传送至DPTRDPTR 标号:指令的符号地址。用用用用于于于于一一一一段段段段功功功功能能能能程程程程序序序序的的的的识识识识别别别别标标标标记记记记或或或或控控控控制制制制转移地址。转移地址。转移地址。转移地址。
4、指令前的标号代表该指令的地址,指令前的标号代表该指令的地址,是是用符号表示的地址用符号表示的地址。一般用英文字母和数字组成。一般用英文字母和数字组成。标号必须用冒号标号必须用冒号“:”与操作码分隔。与操作码分隔。操作码:表示指令的操作功能。操作码用助记符表示,操作码用助记符表示,操作码用助记符表示,操作码用助记符表示,它它它它代表了指令代表了指令代表了指令代表了指令 的操作功能的操作功能的操作功能的操作功能。操作码是指令的必需部分,操作码是指令的必需部分,是指令的核心,不可缺少。是指令的核心,不可缺少。操作数:参加操作的数据或数据地址。操作数与操作码之间用空格分隔,操作数与操作数与操作码之间用
5、空格分隔,操作数与操作数与操作码之间用空格分隔,操作数与操作数与操作码之间用空格分隔,操作数与操作数之间用逗号操作数之间用逗号操作数之间用逗号操作数之间用逗号“,”分隔。分隔。分隔。分隔。操作数可以是操作数可以是数据数据,也可以是,也可以是数据的地址数据的地址、数数据地址的地址据地址的地址或或操作数的其他信息操作数的其他信息。操作数可分为目的操作数和源操作数。操作数可分为目的操作数和源操作数。操作数可用二进制数、十进制数或十六进制操作数可用二进制数、十进制数或十六进制 数表示。数表示。操作数的个数可以是操作数的个数可以是0 03 3个。个。注释:指令功能说明。注释属于非必需项,是为便于阅读,注
6、释属于非必需项,是为便于阅读,注释属于非必需项,是为便于阅读,注释属于非必需项,是为便于阅读,对指令功能作的说明和注解。对指令功能作的说明和注解。对指令功能作的说明和注解。对指令功能作的说明和注解。注释必须以注释必须以“;”开始。开始。二、指令分类按指令功能分类按指令功能分类按指令功能分类按指令功能分类:可分为数据传送类、算术运算类、可分为数据传送类、算术运算类、可分为数据传送类、算术运算类、可分为数据传送类、算术运算类、逻辑运算类、位操作类和逻辑运算类、位操作类和逻辑运算类、位操作类和逻辑运算类、位操作类和 控制转移类控制转移类控制转移类控制转移类 等等等等5 5 5 5大大大大类类类类指令
7、。指令。指令。指令。80C5180C51共有共有111111条指令。条指令。按指令长度分类按指令长度分类:可分为可分为1 1字节、字节、2 2字节和字节和3 3字字节指令。节指令。按指令执行时间分类按指令执行时间分类:可分为可分为1 1机周、机周、2 2机周和机周和4 4机机周指令。周指令。三、指令中常用符号三、指令中常用符号分类介绍各类指令之前,先对描述指令的一些符号意义进行一些简单约定:(1)Ri和Rn:R表示当前工作寄存器区中的工作寄存器,i表示0或1,即R0和R1。n表示07,,即R0R7,当前工作寄存器的选定是由PSW的RS1和RS0位决定的。(2)data:表示立即数,data为8
8、位常数。data是指包含在指令中的8位立即数。(3)data16:包含在指令中的16位立即数。(4)rel:(4)rel:相对地址相对地址,以补码形式表示的地址偏移量以补码形式表示的地址偏移量,范围为范围为-128-128+127,+127,主要用于无条件相对短转移指令主要用于无条件相对短转移指令SJMPSJMP和所有的和所有的条件转移指令中。条件转移指令中。(5)addr16:16(5)addr16:16位目的地址。目的地址可在全部程序存储器位目的地址。目的地址可在全部程序存储器的的64 KB64 KB空间范围内空间范围内,主要用于无条件长转移指令主要用于无条件长转移指令LJMPLJMP和子
9、程和子程序长调用指令序长调用指令LCALLLCALL中。中。(6)addr11:11(6)addr11:11位目的地址。目的地址应与下条指令处于相位目的地址。目的地址应与下条指令处于相同的同的2 KB2 KB程序存储器地址空间范围内程序存储器地址空间范围内,主要用于绝对转移指主要用于绝对转移指令令AJMPAJMP和子程序绝对调用指令和子程序绝对调用指令ACALLACALL指令中。指令中。(7)direct:(7)direct:表示直接寻址的地址表示直接寻址的地址,即即8 8位内部数据存储器位内部数据存储器RAMRAM的单元地址(的单元地址(0 0127/255),127/255),或特殊功能寄
10、存器或特殊功能寄存器SFRSFR的地的地址。址。对于对于SFRSFR可直接用其名称来代替其直接地址。可直接用其名称来代替其直接地址。(8)bit:(8)bit:内部数据存储器内部数据存储器RAMRAM和特殊功能寄存器和特殊功能寄存器SFRSFR中的可直接寻址位地址。中的可直接寻址位地址。(9):(9):间接寻址寄存器或基地址寄存器的前缀间接寻址寄存器或基地址寄存器的前缀,如如Ri,DPTR,Ri,DPTR,表示寄存器间接寻址。表示寄存器间接寻址。(10)(X):(10)(X):表示表示X X中的内容。中的内容。(11)(X):(11)(X):表示由表示由X X寻址的单元中的内容寻址的单元中的内
11、容,即即(X)(X)作作地址地址,该地址的内容用该地址的内容用(X)(X)表示。表示。(12)/(12)/和和符号符号:/:/表示对该位操作数取反表示对该位操作数取反,但不影但不影响该位的原值。响该位的原值。表示指令操作流程表示指令操作流程,将箭头一方将箭头一方的内容的内容,送入箭头另一方的单元中去。送入箭头另一方的单元中去。四、寻址方式四、寻址方式寻址就是寻找操作数的地址。寻址就是寻找操作数的地址。寻址方式:指令按地址获得操作数的方式寻址方式:指令按地址获得操作数的方式MCS-51MCS-51有七种寻址方式有七种寻址方式,且一条指令可能含多种寻且一条指令可能含多种寻址方式。址方式。寄存器寻址
12、寄存器寻址立即寻址立即寻址寄存器间接寻址寄存器间接寻址直接寻址直接寻址变址寻址变址寻址(基址寄存器基址寄存器+变址寄存器间接寻址变址寄存器间接寻址)相对寻址相对寻址位寻址位寻址(1 1)寄存器寻址)寄存器寻址选定某寄存器选定某寄存器,自该寄存器中读取或存放操作数自该寄存器中读取或存放操作数,以以完成指令规定的操作完成指令规定的操作,称为寄存器寻址。称为寄存器寻址。例如例如:MOV A,R0;:MOV A,R0;设指令执行前设指令执行前 A=20H A=20H,R0=40HR0=40H,执执行指令后,行指令后,A=A=40H40H?,?,R0=R0=40H40H?解析:指令执行如下所示解析:指令
13、执行如下所示0 00 0 1 10 00 00 00 00 00 01 1 0 00 00 00 00 00 00 01 1 0 00 00 00 00 00 00 01 1 0 00 00 00 00 00 0AR0(2 2)立即寻址)立即寻址立即寻址是立即寻址是直接给出操作数,直接给出操作数,操作数紧跟在操作码的操作数紧跟在操作码的后面后面,作为指令的一部分与操作码一起存放在程序存储器内作为指令的一部分与操作码一起存放在程序存储器内,可以立即得到并执行可以立即得到并执行,不需要另去寄存器或存储器等处寻找不需要另去寄存器或存储器等处寻找和取数和取数,故称为立即寻址。故称为立即寻址。该操作数称
14、为立即数该操作数称为立即数,并并在其前在其前冠以冠以“”号作前缀号作前缀,以表示并非地址以表示并非地址。立即数可以是立即数可以是8 8位或位或1616位位,用十六进制数表示,一般用用十六进制数表示,一般用于为寄存器或存储器赋常数初值。于为寄存器或存储器赋常数初值。例如:例如:8 8位立即数:位立即数:MOV A MOV A,#40H#40H ;A A40H40H 1616位立即数:位立即数:MOV DPTR MOV DPTR,#2100H#2100H ;DPTRDPTR2100H2100HADD AADD A,#05H#05H;(A)(A)(A)+(A)+立即数立即数 05H 05H(3 3)
15、寄存器间接寻址)寄存器间接寻址MOV A,R0 MOV A,R0 MOV A,R0 MOV A,R0 ;将以将以将以将以R0R0R0R0中内容为地址的存储单元中的数据中内容为地址的存储单元中的数据中内容为地址的存储单元中的数据中内容为地址的存储单元中的数据 传送至传送至传送至传送至A A A A中中中中MOVX A,DPTR MOVX A,DPTR MOVX A,DPTR MOVX A,DPTR ;将外将外将外将外RAM DPTRRAM DPTRRAM DPTRRAM DPTR所指存储单元中的数据所指存储单元中的数据所指存储单元中的数据所指存储单元中的数据 传送至传送至传送至传送至A A A
16、A中中中中 PUSH PSW PUSH PSW PUSH PSW PUSH PSW ;将将将将PSWPSWPSWPSW中数据中数据中数据中数据 传送至堆栈指针传送至堆栈指针传送至堆栈指针传送至堆栈指针SPSPSPSP所指的存储单元中所指的存储单元中所指的存储单元中所指的存储单元中MOV R1MOV R1MOV R1MOV R1,#0FH#0FH#0FH#0FH ;(30H);(30H);(30H);(30H)立即数立即数立即数立即数0FH0FH0FH0FH 寄寄存存器器中中的的内内容容是是一一个个地地址址,由由该该地地址址单单元元寻寻址址到所需的操作数。间接寻址用间址符到所需的操作数。间接寻址
17、用间址符“”“”作为前缀。作为前缀。【例】【例】注意:注意:1 1)“间间接接”表表示示某某寄寄存存器器中中的的“内内容容”只只是是一一个个“单单元元地地址址”,这个地址单元中存放的数据才是要找的,这个地址单元中存放的数据才是要找的“操作数操作数”。2 2)符号)符号“”表示表示“在在”,其含义与读音皆同,其含义与读音皆同“at”“at”。例例:MOV AMOV A,R0R0;A A(R0)(R0)设指令执行前设指令执行前 A=20H A=20H,R0=40HR0=40H,地址为,地址为40H40H存储器单元存储器单元内容如图所示内容如图所示。执行指令后,。执行指令后,A=A=34H34H?,
18、R0=,R0=40H40H?,(40H)=,(40H)=34H34H?41H 67H 40H 34H解析:解析:指令执行如下所示:指令执行如下所示:R0=40HA 67H 40H 34H(4 4)直接寻址)直接寻址 直接寻址是直接寻址是给出操作数的直接地址给出操作数的直接地址。直接寻址范围为。直接寻址范围为内内RAM RAM 128B128B和特殊功能寄存器和特殊功能寄存器。访问特殊功能寄存器访问特殊功能寄存器SFRSFR只能采用只能采用直接寻址方式。直接寻址方式。例:例:设存储器两个单元的内容如图所示,设存储器两个单元的内容如图所示,执行指令执行指令 MOV A MOV A,40H 40H
19、后后 A=A=56H56H?直接寻址方式对数据操作时,地址是固定值,而地址所指定直接寻址方式对数据操作时,地址是固定值,而地址所指定的单元内容为变量形式。的单元内容为变量形式。思考题:思考题:直接寻址方式指令和立即寻址方式指令的形式有直接寻址方式指令和立即寻址方式指令的形式有什么不同?什么不同?41H 78H40H 56H 在本单片机中规定:在本单片机中规定:访问特殊功能寄存器访问特殊功能寄存器SFRSFR只能采用直只能采用直接寻址方式。接寻址方式。例如:例如:MOV A,SP MOV A,SP ;(A)(A)(SP)(SP)MOV A,81H MOV A,81H ;(A)(A)(SP)(SP
20、)MOV P1,#5AH MOV P1,#5AH ;(P1)(P1)(#5AH)(#5AH)MOV 90H,#5AH MOV 90H,#5AH ;(P1)(P1)(#5AH)(#5AH)MOV B,30H MOV B,30H ;(B)(B)(30H)(30H)在本单片机中访问特殊功能寄存器在本单片机中访问特殊功能寄存器SFRSFR只能采用直接寻址只能采用直接寻址方式的原因是方式的原因是SFRSFR分布在分布在80H80H0FFH0FFH范围内,而范围内,而5252系列单片系列单片机有机有256256字节的片内字节的片内RAM,RAM,其中的其中的80H80H0FFH0FFH的的RAMRAM与与
21、SFRSFR所所占地址重叠。于是规定:占地址重叠。于是规定:80H 80H0FFH0FFH范围内的范围内的RAMRAM只能用只能用寄存器间接寻址方式,而寄存器间接寻址方式,而SFRSFR只能用直接寻址方式。从而解只能用直接寻址方式。从而解决了地址冲突的问题。决了地址冲突的问题。例如:例如:MOV A,90H MOV A,90H 等效于等效于 MOV A,P1 MOV A,P1 属直接寻址属直接寻址(5 5)变址寻址)变址寻址 基址寄存器加变址寄存器间接寻址基址寄存器加变址寄存器间接寻址,简称变址寻址。简称变址寻址。它以它以数据指针数据指针DPTRDPTR或程序计数器或程序计数器PCPC作为基址
22、寄存器作为基址寄存器,累加器累加器A A作为作为变址寄存器变址寄存器,两者的内容相加形成两者的内容相加形成1616位程序存储器地址位程序存储器地址,该地该地址就是操作数所在地址。址就是操作数所在地址。数据地址数据地址=基地址基地址+偏移量偏移量例如例如:MOVC A,A+DPTR ;(A)MOVC A,A+DPTR ;(A)(A)+(DPTR)(A)+(DPTR)该指令寻址及操作功能如下图所示。该指令寻址及操作功能如下图所示。这种寻址方式常用于这种寻址方式常用于访问程序存储器中的常数表。访问程序存储器中的常数表。(6 6)相对寻址)相对寻址相对寻址是以当前程序计数器相对寻址是以当前程序计数器P
23、CPC值加上指令规定的偏值加上指令规定的偏移量移量rel,rel,构成实际操作数地址的寻址方法。构成实际操作数地址的寻址方法。它用于访问程序它用于访问程序存储器存储器,常出现在相对转移指令中。常出现在相对转移指令中。在使用相对寻址时要注意以下两点在使用相对寻址时要注意以下两点:第一第一,当前当前PCPC值是指相对转移指令所在地址(一般称值是指相对转移指令所在地址(一般称为源地址)加上转移指令字节数。为源地址)加上转移指令字节数。即即:当前当前PCPC值值=源地址源地址+转移指令字节数。转移指令字节数。例如例如:JZ rel JZ rel 若该指令地址(源地址)为若该指令地址(源地址)为2050
24、H,2050H,则执行该指令时的则执行该指令时的当前当前PCPC值即为值即为2052H2052H。第二第二,偏移量偏移量relrel是有符号的单字节数是有符号的单字节数,以补码以补码表示。表示。其相对值的范围是其相对值的范围是-128-128+127+127(即(即00H00HFFHFFH),负负数表示从当前地址向上转移数表示从当前地址向上转移,正数表示从当前地址正数表示从当前地址向下转移。向下转移。所以所以,相对转移指令满足条件后相对转移指令满足条件后,转移转移的地址(一般称为目的地址)应为的地址(一般称为目的地址)应为:目的地址目的地址=当前当前PCPC值值+rel +rel =源地址源地
25、址+转移指令字节数转移指令字节数+rel+rel例如:例如:指令指令JZ 08HJZ 08H和和JZ 0F4H JZ 0F4H 表示累加器表示累加器A A为零条为零条件满足后件满足后,从源地址(从源地址(2050H2050H)分别向下、)分别向下、向上转向上转移移1010个单元。个单元。其相对寻址示意如下页图其相对寻址示意如下页图(a)(a)、(b)(b)所示。这两条指令均为双字节指令所示。这两条指令均为双字节指令 相对寻址示意图相对寻址示意图(a)(a)指令指令JZ 08HJZ 08H寻址示意图;寻址示意图;(b)(b)指令指令JZ F4HJZ F4H寻址示意寻址示意图图 (7 7)位寻址)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 第二
限制150内