单片机指令系统课件.ppt
《单片机指令系统课件.ppt》由会员分享,可在线阅读,更多相关《单片机指令系统课件.ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三部分第三部分80C51的指令系统的指令系统MCS-51的的指指令令系系统统共共有有111条条指指令令,按按其其功功能可分为五大类:能可分为五大类:3.1指令系统简介指令系统简介数据传送类指令(数据传送类指令(28条)条)算术运算类指令(算术运算类指令(24条)条)逻辑运算类指令(逻辑运算类指令(25条)条)控制转移类指令(控制转移类指令(17条)条)布尔操作布尔操作(位位)类指令类指令(17条)条)指指令令的的表表示示方方法法称称为为指指令令格格式式,其其内内容容包包括括指指令令的的长长度度和和指指令令内内部部信信息息的的安安排排等等。一一条条指指令令通通常常由操作码和操作数两部分组成。由
2、操作码和操作数两部分组成。指令格式指令格式指令的长度有单字节、双字节和三字节等。指令的长度有单字节、双字节和三字节等。NOPINCR0MOVR0,R7操作码操作码操作数操作数;注释注释寄存器工作组(由寄存器工作组(由RS1、RS0选择)选择)位寻址区(位寻址区(16*8=128位)位)普通普通RAM共共80个字节个字节3.2寻址方式寻址方式RnRn 工作寄存器,可以是工作寄存器,可以是R0-R7R0-R7中的任意一个。中的任意一个。#datadata 8 8位立即数,在位立即数,在0000H HFFHFFH范围内。如范围内。如#12#12H H。directdirect 片内片内RAMRAM单
3、元的直接地址。单元的直接地址。RiRi R0R0或或R1R1。#data16data16 表示表示1616位立即数。如:位立即数。如:12341234H H。DPTRDPTR 表示以表示以DPTRDPTR为数据指针进行间接寻址。用为数据指针进行间接寻址。用于对片外地址寻址。于对片外地址寻址。bit bit 位地址。如位地址。如 SETBSETB bit bit。addr16addr16 表示表示1616位地址。位地址。addr11addr11 表示表示1111位地址。位地址。rel rel 补码形式的表示补码形式的表示8 8位地址偏移量。位地址偏移量。$表示当前指令的地址。表示当前指令的地址。
4、A A 累加器累加器B B B B寄存器寄存器C C 进位位进位位 间址寄存器的前缀标志间址寄存器的前缀标志2、直接寻址、直接寻址1、立即寻址、立即寻址4、寄存器间接寻址、寄存器间接寻址3、寄存器寻址、寄存器寻址5、相对寻址、相对寻址7、位寻址、位寻址6、变址寻址、变址寻址七种寻址方式七种寻址方式:2、直接寻址、直接寻址直直接接寻寻址址是是指指在在指指令令中中直直接接给给出出操操作作数数单单元元的的地址。地址。MOV A,3AHMOV A,3AH 1、立即寻址、立即寻址例如:例如:MOV A,#3AHMOV A,#3AH MOV DPTR,#data16 MOV DPTR,#data16直接寻
5、址是访问特殊功能寄存器的唯一方法。直接寻址是访问特殊功能寄存器的唯一方法。立即数前立即数前面加面加“#”片内片内RAM地址地址例如:例如:INCR03、寄存器寻址、寄存器寻址寄存器寻址的寻址范围包括:寄存器寻址的寻址范围包括:(1)四个寄存器组共四个寄存器组共32个通用寄存器个通用寄存器(2)部分特殊功能寄存器部分特殊功能寄存器 寄寄存存器器间间接接寻寻址址是是指指在在指指令令中中要要到到寄寄存存器器的的内内容容所所指指的的地地址址去去取取操操作作数数。即即寄寄存存器器中中放放的的是是操操作作数数的的地地址址。在在寄寄存存器器的的名名称称前面加前缀前面加前缀“”。只能使用只能使用R0R0或或R
6、1R1。4、寄存器间接寻址、寄存器间接寻址例如:例如:ANLA,R1寄存器间接寻址的范围:寄存器间接寻址的范围:(1)片内)片内RAM低低128单元单元:这里只能使用:这里只能使用R0或或R1为为间址寄存器,其通用形式写为间址寄存器,其通用形式写为Ri(i0,1)。MOVA,R0(3)片外)片外RAM低低256单元单元:也可使用:也可使用R0或或R1作作间址寄存器。例如:间址寄存器。例如:MOVXA,R0(2)片外)片外RAM64KB:使用:使用DPTR作为间址寄存作为间址寄存器,其形式为器,其形式为DPTR,例如:,例如:MOVXA,DPTR5、相对寻址、相对寻址相相对对寻寻址址是是指指在在
7、指指令令中中给给出出的的操操作作数数为为程程序序转转移移的的偏偏移移量量。相相对对寻寻址址是是为为实实现现程程序序的的相相对对转转移移而而设设立立的,的,为相对转移指令所采用为相对转移指令所采用。目的地址转移指令所在地址十转移指令字节数十目的地址转移指令所在地址十转移指令字节数十relrel是一个带符号的是一个带符号的8位二进制补码数,范围是位二进制补码数,范围是:-128+127。偏移量为正时,往地址增大的方向,。偏移量为正时,往地址增大的方向,为负时,向地址减小的方向。为负时,向地址减小的方向。例如:例如:JC03H;假设当前;假设当前PC值为值为1000H转移地址为:转移地址为:1000
8、H+2H+(03H)=1005H转移指令字节数转移指令字节数JC03H的机器码为的机器码为40H、03H偏移量偏移量变变址址寻寻址址是是指指以以DPTR或或PC作作基基址址寄寄存存器器,累累加加器器A作作变变址址寄寄存存器器,以以两两者者内内容容相相加加形形成成的的16位位程程序序存存储储器器地地址址作作为为操操作作数数地地址址。又又称称基基址址寄寄存存器器+变变址寄存器间接寻址址寄存器间接寻址。6、变址寻址(基址寄存器、变址寻址(基址寄存器+变址寄存器间接寻址)变址寄存器间接寻址)假设假设:(A)E0H,(DPTR)2000H操作数地址为操作数地址为E0H十十2000H20E0H,若,若20
9、E0H单单元的内容为元的内容为47H,则该指令执行的结果是,则该指令执行的结果是A的内容为的内容为47H。MOVCA,A+DPTRMOVCA,A+PC7、位寻址、位寻址位寻址位寻址的范围:的范围:(1)片内)片内RAM中的位寻址区中的位寻址区(2)可位寻址的特殊功能寄存器位)可位寻址的特殊功能寄存器位寻址位在指令中有四种表示方法:寻址位在指令中有四种表示方法:(1)直接使用位地址表示方法。)直接使用位地址表示方法。SETB8DH(2)单元地址加位的表示方法。)单元地址加位的表示方法。SETB88H.5;88H单元的位单元的位5(3)特殊功能寄存器符号加位的表示方法。)特殊功能寄存器符号加位的表
10、示方法。SETBPSW.5PSW寄存器的位寄存器的位5,则表示为,则表示为PSW.5。(4)位名称表示方法,特殊功能寄存器中的一)位名称表示方法,特殊功能寄存器中的一些寻址位是有名称的。些寻址位是有名称的。SETBF0PSW寄存器位寄存器位5为为F0标志位。标志位。操作数寻址方式和有关空间操作数寻址方式和有关空间寻址方式寻址方式寻址空间寻址空间立即寻址程序存储器ROM直接寻址片内RAM低128B和特殊功能寄存器SFR寄存器寻址工作寄存器R0R7,A,B,CY,DPTR寄存器间接寻址片内RAM低128BR0,R1,片外RAM(R0,R1,DPTR)变址寻址程序存储器(A+PC,A+DPTR)相对
11、寻址程序存储器+127B-128B范围(PC+偏移量)位寻址片内RAM的20H2FH字节地址和部分特殊功能寄存器SFR3.3数据传送指令数据传送指令数数据据传传送送指指令令共共有有28条条。按按照照功功能能又又可可分分为为:一一般般传传送送指指令令、目目的的地地址址传传送送指指令令、累累加加器器传送指令和栈操作传送指令传送指令和栈操作传送指令。一般传送指令格式一般传送指令格式MOV MOV ,MOVX MOVX ,MOVC MOVC ,它的功能是把源字节的内容送到目的字节,而源字它的功能是把源字节的内容送到目的字节,而源字节的内容不变。节的内容不变。1、以累加器以累加器A为目的操作数的指令组,
12、共有为目的操作数的指令组,共有4条:条:MOVA,Rn;(A)(Rn)MOVA,direct;(A)(direct)MOVA,Ri;(A)(Ri)MOVA,#data;(A)#data一、内部一、内部RAM数据传送指令数据传送指令2、以寄存器以寄存器Rn为目的操作数的指令组,共有为目的操作数的指令组,共有3条:条:MOVRn,A;(Rn)(A)MOVRn,ditect;(Rn)(direct)MOVRn,#data;(Rn)#data例:例:MOVR3,#30H3、以以直直接接地地址址direct为为目目的的操操作作数数的的指指令令组组,共共有有5条条指令:指令:MOVdirect,A;(di
13、rect)(A)MOVdirect,Rn;(direct)(Rn)MOVdirect,direct;(direct2)(direct1)MOVdirect,Ri;(direct)(Ri)MOVdirect,#data;(direct)#data例:例:MOV30H,32H4、以间接寻址寄存器、以间接寻址寄存器Ri为目的操作数的指令组,共为目的操作数的指令组,共有有3条指令:条指令:MOVRi,A;(Ri)(A)MOVRi,direct;(Ri)(direct)MOVRi,#data;(Ri)#data例:例:MOVR0,35HMOVR0,#12HRi只能是只能是R0、R1。MOVA,5EH;片
14、内片内RAM的的5EH单元内容送单元内容送A,这里,这里5EH为直接地址。为直接地址。MOVA,#5EH;立即数立即数5EH送送A。MOV5EH,#5EH;这是一条这是一条3字节指令,表示把立即数字节指令,表示把立即数5EH送到片内送到片内RAM中的中的5EH地址单元中去。地址单元中去。MOV5EH,4EH;这是一条这是一条3字节指令,表示把字节指令,表示把4EH单元的内容送到单元的内容送到5EH单元中去。这是片内数据存储单元中的直接地址单元单元中去。这是片内数据存储单元中的直接地址单元数据之间的直接传送。数据之间的直接传送。5、16位数据传送指令位数据传送指令MOVDPTR,#data16;
15、(DPTR)#data16这是这是80C51中惟一的一条中惟一的一条16位指令。位指令。MOVDPTR,#1234H执行结果为执行结果为(DPH)12H,(DPL)34H。二、外部数据传送指令二、外部数据传送指令MOVXA,Ri;MOVXA,DPTRMOVXRi,A;MOVXDPTR,A也可实现累加器也可实现累加器A与与I/O口之间传送一个字节数口之间传送一个字节数据的指令。据的指令。MOVDPTR,#0E000HMOVXA,DPTR0E000H可以为外部数据存储器地址或可以为外部数据存储器地址或I/O接口地接口地址。若为接口地址,其功能为从此接口输入数据。址。若为接口地址,其功能为从此接口输
16、入数据。MOVDPTR,#2040HMOVXA,DPTRMOVDPTR,#2030HMOVXDPTR,A三、查表指令三、查表指令A与与ROM传送指令传送指令MOVC组或称查表指令,共有组或称查表指令,共有2条指令:条指令:MOVCA,A十十PCMOVCA,A十十DPTR程序存储器内容程序存储器内容1010H:02H1011H:04H1012H:06H1012H:08H1000H:MOVA,#0DH1002H:MOVCA,A+PC1003H:MOVR0,AA=02H;R0=02H;PC=1004HPC值为下一条值为下一条指令的地址指令的地址1010H*没有寄存器之间的传送指令,如:没有寄存器之间
17、的传送指令,如:MOVR1,R2*三种三种MOV指令:指令:MOV:读写片内读写片内RAM、SFR、R0R7MOVC:读程序存储器:读程序存储器(含片内、片外)(含片内、片外)MOVX:读写外部:读写外部RAM或或IO*片外片外RAM与与IO地址统一编址:地址统一编址:MOVXA,DPTR;由由DPTR区分是区分是RAM地址还是地址还是IO地址地址四、堆栈操作指令四、堆栈操作指令这组指令共有这组指令共有2条指令:条指令:PUSHdirect;SP+1SP,(,(direct)(SP)POPdirect;(;(SP)(direct)SP-1SP地址加地址加1,压栈,压栈出栈,地址减出栈,地址减1
18、60HSP为当前堆栈地址为当前堆栈地址63H62H61Habcd栈底栈底5FH例:例:已知内部已知内部RAM的的50H单元中存放数值单元中存放数值0AAH,设堆栈指,设堆栈指针为针为60H,把此数据压入堆栈,然后弹出到,把此数据压入堆栈,然后弹出到40H单元中。单元中。MOVSP,#60H;60HSPPUSH50H;SP+1SP,(,(50H)(61H)POP40H;(;(61H)(40H),),SP-1SP当前堆栈地址当前堆栈地址61H60HAA栈底栈底AA50H61H60HAAAA40H当前堆栈地址当前堆栈地址(1)字节交换指令)字节交换指令XCH组,共有组,共有3条指令:条指令:XCHA
19、,RnXCHA,directXCHA,Ri(2)半字节交换指令:)半字节交换指令:XCHDA,R0;两个操作数的低;两个操作数的低4位交换位交换SWAPA;A的高的高4位与低位与低4位互换位互换五、交换指令五、交换指令3.4算术运算指令算术运算指令算术运算类指令都是通过算术运算类指令都是通过ALU进行的。它包括加、进行的。它包括加、减、乘、除四则运算指令共有减、乘、除四则运算指令共有24条。条。一、一、加法指令加法指令ADD二、二、带进位位加法指令带进位位加法指令ADDC三、三、带借位减法指令带借位减法指令SUBB四、乘法指令四、乘法指令MULAB五、除法指令五、除法指令DIVAB六、加六、加
20、1指令指令INC七、减七、减1指令指令DEC八、十进制调整指令八、十进制调整指令DA一、一、加法指令加法指令这组指令的助记符为这组指令的助记符为ADD,共有,共有4条指令:条指令:ADDA,Rn;(A)+(Rn)(A)ADDA,direct;(A)+(direct)(A)ADDA,Ri;(A)+(Rn)(A)ADDA,#data;(A)+#data(A)算术运算结果将使进位标志算术运算结果将使进位标志(CY)、半进位标志、半进位标志(AC)、溢出标志溢出标志(OV)置位或复位。置位或复位。这类指令将影响标志位这类指令将影响标志位AC、CY、OV、PP=0;1的个数为偶数的个数为偶数OV=1;A
21、C=0;CY=1;有进位;有进位11000010+10010011101010101、11001010+11001000110010010、P=1;1的个数为奇数的个数为奇数OV=0;AC=1;CY=1;有进位;有进位二、二、带进位位加法指令带进位位加法指令ADDCA,Rn;(A)(A)+(Rn)+(CY)ADDCA,direct;(A)(A)+(direct)+(CY)ADDCA,Ri;(A)(A)+(Rn)+(CY)ADDCA,#data;(A)(A)+#data+(CY)这类指令将影响标志位这类指令将影响标志位AC、CY、OV、P三、带借位减法指令三、带借位减法指令这类指令的助记符为这类
22、指令的助记符为SUBB,共有,共有4条指令:条指令:SUBBA,Rn;(A)一一(Rn)一一(CY)(A)SUBBA,direct;(A)一一(direct)一一(CY)(A)SUBBA,Ri;(A)一一(Rn)一一(CY)(A)SUBBA,#data;(A)一一#data一一(CY)(A)在在80C51中没有不带借位的减法。需要时,可以在中没有不带借位的减法。需要时,可以在“SUBB”指令前,用指令前,用“CLRC”指令将指令将CY清零。清零。四、乘法指令四、乘法指令乘法指令的助记符为乘法指令的助记符为MUL,只有,只有1条指令:条指令:MULAB例如:设例如:设(A)4EH,(B)5DH执
23、行指令为执行指令为MULAB执行结果为乘积执行结果为乘积1C56H,(A)56H,(B)1CH。(OV)=1,(,(P)=0乘法指令的功能是将乘法指令的功能是将A和和B中两个无符号中两个无符号8位二进制位二进制相乘,相乘,乘积低乘积低8位存于位存于A中,高中,高8位存于位存于B中中。乘积。乘积小于小于255时,时,OV=0,否则,否则OV=1。五、除法指令五、除法指令除法指令的助记符为除法指令的助记符为DIV,只有,只有1条指令:条指令:DIVAB除法指令的功能是将除法指令的功能是将A中无符号二进制数除以中无符号二进制数除以B中的二中的二进制数,进制数,商存于商存于A,余数存于,余数存于B中,
24、并将中,并将CY和和OV清清0,若,若B=0,则,则OV置置1。但。但CY总是清总是清0的。的。例如:设例如:设(A)11H,(B)04H执行指令为执行指令为DIVAB执行结果为执行结果为(A)4,(B)1,(OV)=0,(P)=1六、加六、加1指令指令这组指令的助记符为这组指令的助记符为INC,共有,共有5条指令:条指令:INCRn;(Rn)(Rn)+1INCdirect;(direct)(direct)+1INCRi;(Ri)(Ri)+1INCA;(A)(A)+1INCDPTR;(DPTR)(DPTR)+1这类指令不影响各个标志位。这类指令不影响各个标志位。与与ADDRn,1的区别?的区别
25、?七、减七、减1指令指令这类指令的助记符为这类指令的助记符为DEC,共有,共有4条指令:条指令:DECRn;(Rn)一一1(Rn)DECdirect;(direct)一一1directDECRi;(Ri)一一1(Ri)DECA;(A)一一1(A)这类指令不影响各个标志位。这类指令不影响各个标志位。八、十进制调整指令八、十进制调整指令该指令的助记符为该指令的助记符为DA,只有,只有1条指令:条指令:DAA该指令的功能是对该指令的功能是对BCD码的加法结果进行调整。若码的加法结果进行调整。若两个两个压缩型压缩型BCD码按二进制数相加之后,必须经此码按二进制数相加之后,必须经此指令的调整才能得到压缩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 指令系统 课件
限制150内