MCS-51单片机的指令系统.ppt

上传人:ni****g 文档编号:576868955 上传时间:2024-08-20 格式:PPT 页数:60 大小:1.65MB
返回 下载 相关 举报
MCS-51单片机的指令系统.ppt_第1页
第1页 / 共60页
MCS-51单片机的指令系统.ppt_第2页
第2页 / 共60页
MCS-51单片机的指令系统.ppt_第3页
第3页 / 共60页
MCS-51单片机的指令系统.ppt_第4页
第4页 / 共60页
MCS-51单片机的指令系统.ppt_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《MCS-51单片机的指令系统.ppt》由会员分享,可在线阅读,更多相关《MCS-51单片机的指令系统.ppt(60页珍藏版)》请在金锄头文库上搜索。

1、本章内容本章内容Single Chip Microcomputer寻址方式寻址方式算术操作类指令算术操作类指令逻辑运算指令逻辑运算指令数据传送类指令数据传送类指令控制转移类指令控制转移类指令第第3章章MCS-51单片机的指令系统单片机的指令系统位操作指令位操作指令 指令系统指令系统单片机所能执行的命令(指令)的集合,就是他的单片机所能执行的命令(指令)的集合,就是他的指令系统。指令系统。 汇编语言汇编语言以助记符(用英文名称或缩写表示的指令)、符号以助记符(用英文名称或缩写表示的指令)、符号地址、标号等书写程序的语言,称为汇编语言。地址、标号等书写程序的语言,称为汇编语言。 MCS-51指令系

2、统指令系统 共共111条基本指令;条基本指令; 单字节指令单字节指令49条;条; 双字节双字节45条;条; 三字节三字节17条。条。 指令执行时间指令执行时间1个机器周期的指令个机器周期的指令64条;条; 2个机器周期的指令个机器周期的指令45条;条; 4个机器周期个机器周期2条(乘、除)。条(乘、除)。3.1 3.1 指令系统概述指令系统概述3.2 3.2 指令格式指令格式标号:标号:标号:标号:操作码操作码操作码操作码操作数或操作数地址操作数或操作数地址操作数或操作数地址操作数或操作数地址;注释;注释;注释;注释 不同字节长度指令的表示形式:不同字节长度指令的表示形式:不同字节长度指令的表

3、示形式:不同字节长度指令的表示形式:指令的表示方法指令的表示方法操作码操作码操作码操作码7 07 07 07 0数据或寻址方式数据或寻址方式数据或寻址方式数据或寻址方式7 07 07 07 0双字节指令:双字节指令:双字节指令:双字节指令:单字节指令:单字节指令:单字节指令:单字节指令:操作码操作码操作码操作码7 07 07 07 0三字节指令:三字节指令:三字节指令:三字节指令:操作码操作码操作码操作码7 07 07 07 0数据或寻址方式数据或寻址方式数据或寻址方式数据或寻址方式7 07 07 07 0数据或寻址方式数据或寻址方式数据或寻址方式数据或寻址方式7 07 07 07 0指令的格

4、式:指令的格式:指令的格式:指令的格式:例如:例如:例如:例如: MOV AMOV A,R0R0例如:例如:例如:例如:MOV AMOV A,30H30H例如:例如:例如:例如:MOV DPTRMOV DPTR,#2010H#2010H 操作码操作码用来规定指令进行什么操作。用来规定指令进行什么操作。 操作数操作数是指令操作的对象。是指令操作的对象。寄存器寻址直接寻址立即寻址方式寄存器间接寻址变址寻址相对寻址位寻址 寻址方式寻址方式就是在指令中说明操作数所在地址的方法。就是在指令中说明操作数所在地址的方法。 MCS-51MCS-51单片机指令系统有单片机指令系统有7 7种寻址方式:种寻址方式:

5、3.3 指令系统的寻址方式指令系统的寻址方式目的地目的地目的地目的地1、寄存器寻址寄存器寄存器寄存器寄存器操作数操作数XXHXXHMOV A, MOV A, RnRn ;(;(;(;(RnRn)A A,n=07n=07R0-R7ABDPTR 操作数在寄存器中,指定了寄存器就能得到操作数。操作数在寄存器中,指定了寄存器就能得到操作数。 寻址范围寻址范围3232个工作寄存器,个工作寄存器,A A、B B累加器,数据指针寄存器累加器,数据指针寄存器DPTRDPTR。目的地目的地目的地目的地2、直接寻址内部内部内部内部RAMRAM或或或或SFRSFR区区区区操作数操作数XXHXXHMOV A, 20H

6、; (20H)AMOV A, 20H; (20H)A20H20H注:寻址是寻操作数的“地址”! 指令中操作数在所给单元地址中,即该单元地址中的内容为操作数。指令中操作数在所给单元地址中,即该单元地址中的内容为操作数。 寻址范围寻址范围内部低内部低128128个个RAMRAM单元;单元; 特殊功能寄存器特殊功能寄存器SFRSFR。 注:对端口的寻址,两种表示方法注:对端口的寻址,两种表示方法 MOV AMOV A,80H80H 或或 MOV AMOV A,P0P03、寄存器间接寻址MOV A, MOV A, RiRi; ( (RiRi) A, i=0) A, i=0,1 1目的地目的地目的地目的

7、地寄存器寄存器寄存器寄存器操作数操作数3AH3AH内部内部内部内部RAMRAM3AH3AH65H65H3AH3AHR0R1DPTR寄寄存存器器间间接接寻寻址址寄寄存存器器 寄存器中存放的是操作数的地址,即先从寄存器中找到操作数的地寄存器中存放的是操作数的地址,即先从寄存器中找到操作数的地址,再按该地址找到操作数。址,再按该地址找到操作数。 寻址范围寻址范围 片内低片内低128RAM单元,其通用形式为单元,其通用形式为Ri MOV A, Ri 片外片外64kRAM,用,用DPTR作间址寄存器,即作间址寄存器,即DPTR MOVX A,DPTR 片外低片外低256B的的RAM MOVX A,DPT

8、R MOVX A,Ri目的地目的地目的地目的地# #XXHXXH操作数操作数MOV A, #40H; 40H AMOV A, #40H; 40H A# #40H40H4、立即数寻址 操作数在指令中直接给出,出现在指令中的操作数称为立即数。操作数在指令中直接给出,出现在指令中的操作数称为立即数。MOVC A, A+DPTRMOVC A, A+DPTRMOVC A, MOVC A, A+PCA+PCJMP A+DPTRJMP A+DPTR目的地目的地目的地目的地寄存器寄存器寄存器寄存器操作数操作数基址基址基址基址寄存器寄存器寄存器寄存器0012H0012H变址变址变址变址寄存器寄存器寄存器寄存器3

9、4H34H程序存储器程序存储器程序存储器程序存储器0046H0046H65H65HADPTRPC0046H0046H5、基址寄存器加变址寄存器间接寻址 以以DPTRDPTR或或PCPC作基址寄存器,作基址寄存器,以以A A作变址寄存器,以两者内作变址寄存器,以两者内容相加形成的容相加形成的1616位位地址作操作数的地址来地址作操作数的地址来进行寻址的(多用于访进行寻址的(多用于访问数据表格)。问数据表格)。 注注:这种寻址方式:这种寻址方式只用于读出程序存储只用于读出程序存储器中的数据到器中的数据到A A;三条;三条指令均为单字节指令。指令均为单字节指令。 寻址范围寻址范围:64KB:64KB

10、6、位寻址方式20H20H27H27H21H21H28H28H21H21H20H20H100000000想一想想一想想一想想一想: :如果想使如果想使如果想使如果想使27H27H单单单单元的元的元的元的D5D5位位位位置置置置1 1,该怎么办呢该怎么办呢该怎么办呢该怎么办呢? ?内部RAM单元地址单元地址单元地址单元地址2FH2FH2FH2FH2EH2EH2EH2EH2DH2DH2DH2DH2CH2CH2CH2CH2BH2BH2BH2BH2AH2AH2AH2AH29H29H29H29H28H28H28H28H 26H26H26H26H25H25H25H25H24H24H24H24H23H23H

11、23H23H22H22H22H22H21H21H21H21H20H20H20H20H7F7F77776F6F67675F5F57574F4F474737372F2F27271F1F17170F0F0707 MSBMSBMSBMSB 位地址位地址位地址位地址 LSBLSBLSBLSB7E7E76766E6E66665E5E56564E4E4646 36362E2E26261E1E16160E0E06067D7D75756D6D65655D5D55554D4D454535352D2D25251D1D15150D0D05057C7C74746C6C64645C5C54544C4C4444 34342

12、C2C24241C1C14140C0C04047B7B73736B6B63635B5B53534B4B4343 33332B2B23231B1B13130B0B03037A7A72726A6A62625A5A52524A4A4242 32322A2A22221A1A12120A0A020279797171696961615959515149494141 313129292121191911110909010178787070686860605858505048484040 3030282820201818101008080000位寻址地址表位寻址地址表位寻址地址表位寻址地址表 例:SETB 3

13、DHSETB 3DHSETB 3DHSETB 3DH3D3D3C3C3B3B3F3F3E3E3A3A3939383827H27HSETB 3DHSETB 3DH20H20H27H27H21H21H28H28H21H21H20H20H00000001 0 内部内部RAMRAM的位寻址的表示方法的位寻址的表示方法: 位地址,如位地址,如 3DH3DH; 单元地址加上位,如(单元地址加上位,如(27H27H).5.5 特殊功能寄存器位寻址的表示方法:特殊功能寄存器位寻址的表示方法: 位地址,如位地址,如 0D5H 0D5H (为(为PSWPSW的位的位5 5的位地址);的位地址); 位名称,如位名称

14、,如 F0F0(PSWPSW位位5是是F0F0标志位,可直接使用);标志位,可直接使用); 单元地址加位数,单元地址加位数, 如如 0D0H0D0H(PSWPSW寄存器)的位寄存器)的位5 5,表示为,表示为(0D0H0D0H).5.5; 特殊功能寄存器符号加位数,特殊功能寄存器符号加位数, 如如 PSW.5PSW.5 位寻址范围位寻址范围:128128个内部个内部RAMRAM位地址,位地址,8383个特殊功能寄存器位地址。个特殊功能寄存器位地址。7、相对寻址 用于程序转移操作而设置的寻址方式用于程序转移操作而设置的寻址方式。 相对转移指令多为相对转移指令多为2 2字节,个别为字节,个别为3

15、3字节。字节。 指令中,给出的操作数是地址偏移量指令中,给出的操作数是地址偏移量relrel, ,因而目的地址为:因而目的地址为: 目的地址目的地址= =转移指令所在的地址转移指令所在的地址 + + 转移指令的字节数转移指令的字节数 + + relrel 注注:relrel是带符号的是带符号的8 8位二进制数补码数,表示范围为位二进制数补码数,表示范围为-128+127-128+127目的地目的地目的地目的地XXHXXH操作数操作数SJMP 54HSJMP 54HPC+2PC+2+ + 54H54HPCPC2000H2000H2000H+2 =2056H2000H+2 =2056HPCPC20

16、56H2056H寻址比较寻址比较MOV AMOV A,R0R0 地址是寄存器地址是寄存器地址是寄存器地址是寄存器R0R0MOV AMOV A,R0R0 地址在寄存器地址在寄存器地址在寄存器地址在寄存器R0R0里里里里MOV AMOV A,20H20H 地址是内存地址是内存地址是内存地址是内存20H20HMOV AMOV A,#20H#20H 直接将直接将直接将直接将20H20H这个数送这个数送这个数送这个数送A A错!错!错!MOV AMOV A,R0R0对!寻址比较寻址比较MOV AMOV A,R0R0 地址是寄存器地址是寄存器R0R0MOV AMOV A,R0R0 地址在寄存器地址在寄存器

17、R0R0里面里面MOV AMOV A,20H20H 地址是内存地址是内存20H20HMOV AMOV A,#20H#20H 直接将直接将20H20H这个数送这个数送A A错!错!错!MOV AMOV A,R0R0对!寻址比较寻址比较MOV AMOV A,R0R0 地址是寄存器地址是寄存器R0R0MOV AMOV A,R0R0 地址在寄存器地址在寄存器R0R0里面里面MOV AMOV A,20H20HMOV AMOV A,#20H#20H 直接将直接将20H20H这个数送这个数送A A错!错!错!MOV AMOV A,20H20H对! 地址是内存地址是内存20H20H寻址比较寻址比较MOV AM

18、OV A,R0R0 地址是寄存器地址是寄存器R0R0MOV AMOV A,R0R0 地址在寄存器地址在寄存器R0R0里里MOV AMOV A,20H20H 地址是内存地址是内存20H20HMOV AMOV A,#20H#20H 直接将直接将20H20H这个数送这个数送A A错!错!错!MOV AMOV A,#20H#20H对!3.4 MCS-51指令系统分类介绍指令系统分类介绍指令描述约定指令描述约定符符 号号含含 义义RnRn表示当前选定寄存器组的工作寄存器表示当前选定寄存器组的工作寄存器R0R0R7R7RiRi表示作为间接寻址的地址指针表示作为间接寻址的地址指针R0R0R1R1#data#

19、data表示表示8 8位立即数,即位立即数,即00H00HFFHFFH#data16#data16表示表示1616位立即数,即位立即数,即0000H0000HFFFFHFFFFHaddr16addr16表示表示1616位地址,用于位地址,用于64K64K范围内寻址范围内寻址addr11addr11表示表示1111位地址,用于位地址,用于2K2K范围内寻址范围内寻址directdirect8 8位直接地址,可以是内部位直接地址,可以是内部RAMRAM区的某一单元或某一专用功能寄存器的地址区的某一单元或某一专用功能寄存器的地址RelRel带符号的带符号的8 8位偏移量(位偏移量(-128-128+

20、127+127)BitBit位寻址区的直接寻址位位寻址区的直接寻址位(X X)X X地址单元中的内容,或地址单元中的内容,或X X作为间接寻址寄存器时所指单元的内容作为间接寻址寄存器时所指单元的内容将将 后面的内容传送到前面去后面的内容传送到前面去MCS-51MCS-51的指令的指令的指令的指令1 1 数据传送指令(数据传送指令(2929条)条)2 2 算术运算指令(算术运算指令(2424条)条)3 3 逻辑运算指令(逻辑运算指令(2424条)条)4 4 控制转移指令(控制转移指令(1717条)条)5 5 位操作指令(位操作指令(1717条)条)目的地址目的地址目的地址目的地址源地址源地址源地

21、址源地址数数数数 据据据据MOV , MOV A,#20H; 20HA,A ARnRndirect1direct1RiRiA ARnRndirect2direct2RiRi#data#dataA ARnRndirect2direct2RiRi#data#dataMOVMOVRnRnA A#data#datadirect2direct2direct1direct1A ARnRndirect2direct2RiRi#data#dataRiRiA Adirect2direct2#data#data20H20HA A3.4.1 3.4.1 3.4.1 3.4.1 数据传送指令(数据传送指令(数据传送指

22、令(数据传送指令(29292929条)条)条)条) 8 8 8 8位位位位数据传送指令数据传送指令数据传送指令数据传送指令(15(15(15(15条条条条) (1,2,3,4) (1,2,3,4) (1,2,3,4) (1,2,3,4) 例例 MOV A,R6; (R6)A MOV A,R0; (R0)A MOV A,20H; (20H)A MOV 20H ,A; (A)20H 16161616位位位位数据传送指令(数据传送指令(数据传送指令(数据传送指令(1 1 1 1条)条)条)条) (5)(5)(5)(5) MOV DPTR,#data16 外部外部外部外部数据传送指令数据传送指令数据传

23、送指令数据传送指令(4(4(4(4条条条条) ) ) ) (7)MOVX , ,A ADPTRDPTRRiRiMOVXMOVXA ADPTRDPTRRiRiDPTRDPTRA ARiRiDPTRDPTRA ARiRiA A交换和查表类交换和查表类交换和查表类交换和查表类指令指令指令指令(9(9(9(9条条条条) ) ) ) (6,8,9,10,),A AXCHXCHRnRndirectdirectRiRiRnRnA AdirectdirectRiRi1)1)1)1)字节交换指令字节交换指令字节交换指令字节交换指令(3(3(3(3条条条条) ) ) ) 2)2)2)2)低半字节交换指令低半字节交

24、换指令低半字节交换指令低半字节交换指令(1(1(1(1条条条条) ) ) ) XCHD A , XCHD A , RiRi (A)(Rn), n=07 (A)(direct) (A)(Ri),i=0,1 (A)03(Rn)03, n=073)3)3)3)查表指令查表指令查表指令查表指令(2(2(2(2条条条条, , , ,单字节单字节单字节单字节) ) ) ) MOVC A , A+PCMOVC A , A+PC; (A)+PC+1)(A)+PC+1)AAMOVC A , A+DPTR; MOVC A , A+DPTR; (A)+(DPTR)(A)+(DPTR)AA4)4)4)4)堆栈操作指令

25、堆栈操作指令堆栈操作指令堆栈操作指令(2(2(2(2条条条条) ) ) ) PUSH direct; PUSH direct; (SP)+1(SP)+1SP,(direct) SPSP,(direct) SPPUSH A; (SP)+1SP,(A)SP PUSH A; (SP)+1SP,(A)SP (direct(direct可以是直接地址,也可以是可以是直接地址,也可以是可以是直接地址,也可以是可以是直接地址,也可以是SFRSFR)POP direct; POP direct; (SP) (SP) direct,(SP)-1 SP direct,(SP)-1 SP POP A; (SP)A,

26、 (SP)-1 SPPOP A; (SP)A, (SP)-1 SPdirectdirectdirectdirect3.4.2 3.4.2 3.4.2 3.4.2 算术操作类指令(算术操作类指令(算术操作类指令(算术操作类指令(24242424条)条)条)条) 1 1 1 1、加法加法加法加法指令(指令(指令(指令(4 4 4 4条)条)条)条) A A ,RnRnRiRi#data#dataADDADDRnRnRiRi#data#data (A)+(Rn)A, n=07(A)+(direct)A(A)+(Ri)A,i=0,1(A)+ #dataAPSW 加法指令加法指令A结果对标志位的影响:结

27、果对标志位的影响: 位位7有进位,置有进位,置1Cy,否则清,否则清0Cy; 位位3有进位,置有进位,置1Ac,否则清,否则清0Ac; 位位6有进位,位有进位,位7无进位,或,位无进位,或,位7有进位,位有进位,位6无进位,则无进位,则OV置置1,否则清,否则清0OV。AdirectdirectdirectdirectA A ,RnRnRiRi#data#dataADDCADDCRnRnRiRi#data#data 2 2 2 2、带进位、带进位、带进位、带进位加法加法加法加法指令(指令(指令(指令(4 4 4 4条)条)条)条) (A)+(Rn)+CA, n=07(A)+(direct)+C

28、A(A)+(Ri)+CA,i=0,1(A)+ #data+CAPSW 加法指令加法指令A结果对标志位的影响:结果对标志位的影响: 位位7有进位,置有进位,置1Cy,否则清,否则清0Cy; 位位3有进位,置有进位,置1Ac,否则清,否则清0Ac; 位位6有进位,位有进位,位7无进位,或,位无进位,或,位7有进位,位有进位,位6无进位,则无进位,则OV置置1,否则清,否则清0OV。A助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器机器周期周期INCA00000100A(A)+1影响影响PSW的的P标志标志1INCRn00001rrrRn(Rn)+1n=07,rrr=000

29、1111INCdirect0101directdirect(direct)+11INCRi0000011i(Ri)(Ri)+1i=0,11INCDPTR10100011DPTR(DPTR)+12DECA00010100A(A)-1影响影响PSW的的P标志标志1DECRn00011rrrRn(Rn)-1n=07,rrr=0001111DECdirect00010101directdirect(direct)+11DECRi0001011i(Ri)(Ri)-1i=0,113 3 3 3、加加加加1 1 1 1减减减减1 1 1 1指令指令指令指令 (3 3 3 3,6 6 6 6)4 4 4 4、

30、十进制(、十进制(、十进制(、十进制(BCDBCDBCDBCD码)调整码)调整码)调整码)调整指令指令指令指令(1(1(1(1条条条条) ) ) ) DA A DA A 注意注意:DA A指令只能跟在指令只能跟在ADD或或ADDC加法指令后,不适用加法指令后,不适用于减法指令。于减法指令。用于对用于对用于对用于对BCDBCD码十进制数加法运算结果的内容修正。码十进制数加法运算结果的内容修正。码十进制数加法运算结果的内容修正。码十进制数加法运算结果的内容修正。5 5 5 5、带借位的带借位的带借位的带借位的减法减法减法减法指令指令指令指令(4(4(4(4条条条条) ) ) ) directdir

31、ectdirectdirectA A ,RnRnRiRi#data#dataSUBBSUBBRnRnRiRi#data#data (A)-(Rn)-CyA, n=07(A)-(direct)-CyA(A)-(Ri)-CyA,i=0,1(A)- #data-CyAPSW 加法指令加法指令A结果对标志位的影响:结果对标志位的影响: 位位7有借位,置有借位,置1Cy,否则清,否则清0Cy; 位位3有借位,置有借位,置1Ac,否则清,否则清0Ac; 位位6有借位,位有借位,位7无借位,或,位无借位,或,位7有借位,位有借位,位6无借位,则无借位,则OV置置1,否则清,否则清0OV。7 7 7 7、乘法

32、乘法乘法乘法指令指令指令指令(1(1(1(1条条条条) ) ) ) MUL ABMUL AB; A A B BBABA8 8 8 8、除法、除法、除法、除法指令指令指令指令(1(1(1(1条条条条) ) ) ) DIV ABDIV AB; A/BA/BA A(商),余数(商),余数(商),余数(商),余数B B 乘法指令中,乘积乘法指令中,乘积BA对标志位对标志位OV的影响:的影响: 积大于积大于255255,置,置1 1溢出标志位溢出标志位OVOV,否则清,否则清0OV0OV位位; 进位标志位进位标志位CyCy总是清总是清0 0。 除法指令中,商、除数对标志位除法指令中,商、除数对标志位OV

33、的影响:的影响: B B的内容(除数)不为的内容(除数)不为0 0,计算后,清,计算后,清0Cy0Cy和溢出标志位和溢出标志位OVOV; 如除数(如除数(B B的内容)为的内容)为0 0,则存放结果的,则存放结果的A A、B B的内容不定,并置的内容不定,并置1 1溢出标志位溢出标志位OVOV。1 1 1 1、累加器、累加器、累加器、累加器A A A A清清清清0 0 0 0和取反和取反和取反和取反指令指令指令指令助记符助记符格式格式机器码机器码(B)相应操作相应操作指令说明指令说明机器机器周期周期CLR A11100100A00HA中内容清中内容清0,影响,影响P标志标志不影响不影响Cy、A

34、c、OV标志位标志位1CPL A11110100A中中内内容容按按位位取取反反,影影响响P标标志志不影响其它标志位不影响其它标志位1AA3.4.3 3.4.3 3.4.3 3.4.3 逻辑运算指令逻辑运算指令逻辑运算指令逻辑运算指令 A.0A.7A.0A.7A.0A.7A.0A.7CYCY RL A;左环移左环移 RR A;右环移右环移 RLC A;带进位左环移带进位左环移 RRC A;带进位右环移带进位右环移注意注意注意注意: :执行带进位的循环移位指令之前,必须给执行带进位的循环移位指令之前,必须给执行带进位的循环移位指令之前,必须给执行带进位的循环移位指令之前,必须给CYCY置位或清零。

35、置位或清零。置位或清零。置位或清零。2 2 2 2、循环移位循环移位循环移位循环移位指令(指令(指令(指令(2 2 2 2、3 3 3 3、4 4 4 4、5 5 5 5)3 3 3 3、累加器半字节交换指令累加器半字节交换指令累加器半字节交换指令累加器半字节交换指令SWAP ASWAP A; (Acc.7Acc.4) (Acc.3Acc.0) A助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器机器周期周期ANLA,direct01010101directA(A)(direct)按位相与按位相与1ANLA,Rn01011rrrA(A)(Rn),n=07n=07,rrr

36、=0001111ANLA,Ri0101011iA(A)(Ri),i=0,1i=0,11ANLA,#data01010100dataA(A)#data1ANLdirect,A01010010directdirect(direct)(A)不不影影响响PSW的的P标标志志1ANLdirect,#data01010011directdatadirect(direct)#data不不影影响响PSW的的P标标志志24 4 4 4、逻辑与、逻辑与、逻辑与、逻辑与指令(指令(指令(指令(6 6 6 6条)条)条)条) 5 5 5 5、逻辑或、逻辑或、逻辑或、逻辑或指令(指令(指令(指令(6 6 6 6条)条)

37、条)条) 01000011directdata助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器机器周期周期ORLA,direct01000101directA(A)(direct)按位相或按位相或1ORLA,Rn01001rrrA(A)(Rn)n=07,rrr=0001111ORLA,Ri0100011iA(A)(Ri)i=0,11ORLA,#data01000100dataA(A)#data1ORLdirect,A01000010directdirect(direct)(A)不影响不影响PSW的的P标标志志1ORLdirect,#datadirect(direct)

38、#data不影响不影响PSW的的P标标志志26 6 6 6、逻辑、逻辑、逻辑、逻辑异或异或异或异或指令(指令(指令(指令(6 6 6 6条)条)条)条) 助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器机器周期周期XRLA,direct01100101directA(A) (direct)按位相异或按位相异或1XRLA,Rn01101rrrA(A) (Rn)n=07,rrr=0001111XRLA,Ri0110011iA(A) (Ri)i=0,11XRLA,#data01100100dataA(A) #data1XRLdirect,A01100010directdir

39、ect(direct) (A)不影响不影响PSW的的P标志标志1XRLdirect,#data01100011directdatadirect(direct) #data不影响不影响PSW的的P标志标志2 PC高5位(保持不变) PC低11位A10A9A800 001A7A6A5A4A3A2A1A0操作码(第一字节)操作数(第二字节)1111位转移地址的形成示意图位转移地址的形成示意图程序计数器PCAJMP AJMP addr11 addr11 ; PC+2PC+2PCPC, addr11 addr11 PC.10PC.0PC.10PC.03.4.4 3.4.4 控制转移类指令控制转移类指令控

40、制转移类指令控制转移类指令 1 1 1 1、无条件、无条件、无条件、无条件转移转移转移转移指令指令指令指令PCPC2002H2002H2003H2003H0000H0000H0001H0001H2004H2004H2005H2005H2006H2006HPCPCPCPCPCPC2006H2006H2003H2003HPCPC0002H0002HPCPC2 2 2 2、相对转移指令、相对转移指令、相对转移指令、相对转移指令 SJMP SJMP relrel;relrel为相对偏移量,在为相对偏移量,在为相对偏移量,在为相对偏移量,在128-127128-127之间之间之间之间 例: SJMP03

41、HSJMP03H03H03H03H03H就是当前就是当前就是当前就是当前PCPC值值值值与目的与目的与目的与目的PCPC值值值值相对差相对差相对差相对差PCPC 注:注:在编写程序时,只需在相对转移指令中在编写程序时,只需在相对转移指令中直接写上要转向的目标地址标号即可。直接写上要转向的目标地址标号即可。 例: LOOP: MOV A,R6 SJMP LOOP3 3 3 3、长跳转指令、长跳转指令、长跳转指令、长跳转指令 LJMP addr16LJMP addr16 ; AAAAHPCPC=0000HPC=0000HPC=AAAAHPC=AAAAH0000H0000H0001H0001HAAA

42、9HAAA9HAAAAHAAAAH0002H0002H假设执行该指假设执行该指令前,令前,PCPC的值的值为为0000H0000H。注意注意注意注意: : : :该指令可以转移到该指令可以转移到该指令可以转移到该指令可以转移到64 KB64 KB64 KB64 KB程序存储器中的任意位置。程序存储器中的任意位置。程序存储器中的任意位置。程序存储器中的任意位置。4 4 4 4、间接跳转指令、间接跳转指令、间接跳转指令、间接跳转指令 JMP A+DPTRJMP A+DPTR;DPTRDPTRDPTRDPTR内容为基址,内容为基址,内容为基址,内容为基址,A A A A内容为变址。内容为变址。内容为

43、变址。内容为变址。 注:本指令不改变注:本指令不改变A A和和DPTRDPTR的内容,不影响标志位。的内容,不影响标志位。5 5 5 5、条件转移、条件转移、条件转移、条件转移指令指令指令指令助记符格式助记符格式助记符格式助记符格式机器码机器码(B)相应操作相应操作机器机器周期周期JZJZrelrel0110000若若A=0,则则PCPC+rel,程程序序执执行行转转移移,否否则则程序顺序执行程序顺序执行 2JNZrel01110000若若A0,则则PCPC+rel,程程序序执执行行转转移移,否否则则程序顺序执行程序顺序执行26 6 6 6、比较不相等转移比较不相等转移比较不相等转移比较不相等

44、转移指令指令指令指令(4(4(4(4条条条条) ) ) )助记符格式助记符格式机器码机器码(B)(B)相应操作相应操作机器机器周期周期CJNE CJNE A,#data,relA,#data,rel10110100 10110100 data data relrel若若( (A)#dataA)#data, , 则则PCPCPC+relPC+rel,否否则则顺顺序序执执行行;若若 A#dataA#data,则,则CY=1CY=1,否则否则CY=0CY=02 2CJNE CJNE Rn,#data,relRn,#data,rel10111rrr10111rrrdata data relrel若若

45、( (Rn)#dataRn)#data,则则PCPCPC+relPC+rel,否否则则顺顺序序执执行;若行;若( (RnRn)#data)#data,则,则CY=1CY=1,否则否则CY=0CY=02 2CJNE CJNE Ri,#data,relRi,#data,rel1011011i1011011idata data relrel若若(Ri)#dataRi)#data,则则PCPCPC+relPC+rel,否否则则顺顺序序执执行;若行;若(RiRi)#data,)#data,则则CY=1CY=1,否则否则CY=0CY=02 2CJNE CJNE A,direct,relA,direct,r

46、el1011010110110101direct direct relrel若若( (A)(directA)(direct) ),则则PCPCPC+relPC+rel,否否则则顺顺序序执执行;若行;若(A)(direct)(A)(direct),则,则CY=1CY=1,否则否则CY=0CY=02 27 7 7 7、减减减减1 1 1 1非零转移非零转移非零转移非零转移指令指令指令指令(2(2(2(2条条条条) ) ) )助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期DJNZRn,rel;n=0711011rrrrelRn(Rn)-1,若若(Rn)0,则则PCPC+rel

47、,否否则则顺顺序执行序执行2DJNZdirect,rel11010101directreldirect( direct) -1, 若若 ( direct) 0, 则则PCPC+rel,否则顺序执行否则顺序执行2条件转移类指令范例条件转移类指令范例方案一方案一还有什么方法实还有什么方法实现循环的终止现循环的终止? ?将00H0FH这16个数顺序地置入片内RAM20H2FH单元中。 MOV R0,#20H MOV R7,#0FH CLR ALOOP:MOV R0,A INC A INC R0 DJNZ R7,LOOP SJMP $条件转移类指令范例条件转移类指令范例方案二方案二 MOV R0,#2

48、0H MOV R7,#0FH CLR ALOOP:MOV R0,A INC A INC R0 CJNE A,#0FH,LOOP SJMP $条件转移类指令范例条件转移类指令范例方案三方案三 MOV R0,#20H MOV A,#0FH MOV 30H,#00HLOOP:MOV R0,30H INC 30H INC R0 DEC A JNZ LOOP SJMP $条件转移类指令范例条件转移类指令范例方案四方案四 MOV R0,#20H MOV A,#0FH MOV 30H,#00HLOOP:MOV R0,30H INC 30H INC R0 SUBB A,#01H JNC LOOP SJMP $

49、8 8、调用子程序、调用子程序指令指令1)1)1)1)短调用短调用短调用短调用指令指令指令指令助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期ACALLaddr11a10a9a810001addr70PCPC+2SPSP+1,(SP)PC07SPSP+1,(SP)PC815PC010addr1122)2)2)2)长调用长调用长调用长调用指令指令指令指令助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期LCALLaddr1600010010addr158addr70PCPC+3SPSP+1,SPPC07SPP+1,SPPC815PCaddr1629 9

50、9 9、子程序的返回和中断返回、子程序的返回和中断返回、子程序的返回和中断返回、子程序的返回和中断返回指令(指令(指令(指令(9 9 9 9、10)10)10)10)助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期RET00100010PC815(SP),SPSP-1PC07(SP),SPSP-1子程序返回指令子程序返回指令2RETI00110010PC815SP,SPSP-1PC07SP,SPSP-1中断返回指令中断返回指令2助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明NOP00000000空操作空操作PC(PC)+1消耗消耗1个机器周期个机器

51、周期程序中用于等待或程序中用于等待或时间延迟。时间延迟。10101010、空操作、空操作、空操作、空操作 (11111111)3.4.5 位操作指令位操作指令单元地址单元地址2FH2FH2EH2EH2DH2DH2CH2CH2BH2BH2AH2AH29H29H28H28H27H27H26H26H25H25H24H24H23H23H22H22H21H21H20H20H7F7F77776F6F67675F5F57574F4F47473F3F37372F2F27271F1F17170F0F0707MSBMSB 位地址位地址 LSBLSB7E7E76766E6E66665E5E56564E4E46463

52、E3E36362E2E26261E1E16160E0E06067D7D75756D6D65655D5D55554D4D45453D3D35352D2D25251D1D15150D0D05057C7C74746C6C64645C5C54544C4C44443C3C34342C2C24241C1C14140C0C04047B7B73736B6B63635B5B53534B4B43433B3B33332B2B23231B1B13130B0B03037A7A72726A6A62625A5A52524A4A42423A3A32322A2A22221A1A12120A0A02027979717169696

53、1615959515149494141393931312929212119191111090901017878707068686060585850504848404038383030282820201818101008080000RAMRAM 位寻址区位地址表位寻址区位地址表位寻址区位地址表位寻址区位地址表助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器周期机器周期MOVC,bit10100010bitCybit位传送指令,结果影响位传送指令,结果影响CY标志标志2MOVbit,C10010010bitbitCy位传送指令,结果不影响位传送指令,结果不影响PSW21.

54、1.1.1.数据位传送指令数据位传送指令数据位传送指令数据位传送指令 注:注:指令中一个操作数必须是进位标志位,另一个可以是任何直接寻址位。指令中一个操作数必须是进位标志位,另一个可以是任何直接寻址位。2.2.2.2.位置位和位清零指令位置位和位清零指令位置位和位清零指令位置位和位清零指令助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器周期机器周期CLRC11000011CY0位清位清0指令,结果影响指令,结果影响CY标志标志1CLRbit11000010bitbit0位清位清0指令,结果不影响指令,结果不影响PSW1SETBC11010011CY1位置位置1指令,结

55、果影响指令,结果影响CY标志标志1SETBbitbit1位置位置1指令,结果不影响指令,结果不影响PSW111010010bit助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器周期机器周期CPLC10110011CyCyCy求反求反1CPLbit10110010bitbit位取反指令,结果不影响位取反指令,结果不影响Cy1助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器周期机器周期ANL C,bit10000010 bitCY CYbit位与指令位与指令2 ANL C,/bit10110010 bitCY CYbit位与指令位与指令23.3.

56、3.3.位变量逻辑位变量逻辑位变量逻辑位变量逻辑与与与与指令指令指令指令4.4.4.4.位变量逻辑位变量逻辑位变量逻辑位变量逻辑或或或或指令指令指令指令助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器周期机器周期ORL C,bit01110010 bitCy Cybit位或指令位或指令2 ORL C,/bit10100010 bitCy Cybit位或指令位或指令25.5.5.5.条件转移条件转移条件转移条件转移类位操作指令类位操作指令类位操作指令类位操作指令助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期JBbit,rel00100000bit

57、rel若若bit=1,则则PCPC+rel,否否则则顺顺序执行序执行2JNBbit,rel00110000bitrel若若bit=0,则则PCPC+rel,否否则则顺顺序执行序执行2JBCbit,rel00010000bitrel若若bit=1,则则PCPC+rel,bit0,否则顺序执行否则顺序执行2助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期JCrel01000000若若Cy=0,PCPC+rel,否则顺序执行否则顺序执行2JNCrel01010000若若Cy0,PCPC+rel,否则顺序执行否则顺序执行2练习练习1 设内部设内部设内部设内部RAMRAM中中中中3

58、3H33H单元中内容为单元中内容为单元中内容为单元中内容为44H44H,34H34H单元中单元中单元中单元中内容为内容为内容为内容为0AFH0AFH,R0R0中内容为中内容为中内容为中内容为33H33H,R1R1中内容为中内容为中内容为中内容为00H00H,给给给给出以下每一条指令执行后出以下每一条指令执行后出以下每一条指令执行后出以下每一条指令执行后A A中的值和中的值和中的值和中的值和PSWPSW中中中中P P的值。的值。的值。的值。MOV A, #34HMOV A, #34HMOV A, 34HMOV A, 34HMOV A, R1MOV A, R1MOV A,R0MOV A,R0 注意

59、:对注意:对注意:对注意:对PSWPSW中中中中P P标志的影响。标志的影响。标志的影响。标志的影响。练练 习习 2设内部设内部设内部设内部RAM30HRAM30H单元中内容为单元中内容为单元中内容为单元中内容为52H52H,请给出以下每条请给出以下每条请给出以下每条请给出以下每条指令执行后的结果:指令执行后的结果:指令执行后的结果:指令执行后的结果:MOV A, #30H MOV A, #30H MOV A, 30HMOV A, 30HMOV R0, #30HMOV R0, #30HMOV A, R0MOV A, R0MOV 30H, #30HMOV 30H, #30H设设设设P1P1口内容

60、为口内容为口内容为口内容为0AAH0AAH(P1P1口地址为口地址为口地址为口地址为90H90H),),),),请给出请给出请给出请给出以下程序结果:以下程序结果:以下程序结果:以下程序结果:MOV R0, #30HMOV R0, #30HMOV 10H, P1MOV 10H, P1MOV A, 10HMOV A, 10HMOV R0, AMOV R0, AMOV 40H, R0MOV 40H, R0本章主要知识点本章主要知识点指令的七种寻址方式。指令的七种寻址方式。指令的七种寻址方式。指令的七种寻址方式。vv难点:寄存器间接寻址难点:寄存器间接寻址难点:寄存器间接寻址难点:寄存器间接寻址各类指令的主要功能。各类指令的主要功能。各类指令的主要功能。各类指令的主要功能。vv难点:查表指令难点:查表指令难点:查表指令难点:查表指令vv难点:条件转移指令难点:条件转移指令难点:条件转移指令难点:条件转移指令作业:作业: 3.5 3.6 3.13 3.183.5 3.6 3.13 3.18

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号