【单片机应用课件】2.MCS-51指令系统.ppt
《【单片机应用课件】2.MCS-51指令系统.ppt》由会员分享,可在线阅读,更多相关《【单片机应用课件】2.MCS-51指令系统.ppt(53页珍藏版)》请在文库网上搜索。
1、寻址方式寻址方式寻址方式寻址方式数据传送类指令数据传送类指令数据传送类指令数据传送类指令算术运算类指令算术运算类指令算术运算类指令算术运算类指令逻辑操作类指令逻辑操作类指令逻辑操作类指令逻辑操作类指令控制转移类指令控制转移类指令控制转移类指令控制转移类指令位操作指令位操作指令位操作指令位操作指令第第章章MCSMCS5151指指令令系系统统本章内容本章内容1指令概述指令概述操作码操作码操作码操作码7 07 07 07 0数据或寻址方式数据或寻址方式数据或寻址方式数据或寻址方式7 07 07 07 0双字节指令:双字节指令:双字节指令:双字节指令:标号:标号:标号:标号:操作码操作码操作码操作码操
2、作数或操作数地址操作数或操作数地址操作数或操作数地址操作数或操作数地址;注释;注释;注释;注释单字节指令:单字节指令:单字节指令:单字节指令:操作码操作码操作码操作码7 07 07 07 0三字节指令:三字节指令:三字节指令:三字节指令:操作码操作码操作码操作码7 07 07 07 0数据或寻址方式数据或寻址方式数据或寻址方式数据或寻址方式7 07 07 07 0数据或寻址方式数据或寻址方式数据或寻址方式数据或寻址方式7 07 07 07 0指令按字节长度可以分为三种:指令按字节长度可以分为三种:指令按字节长度可以分为三种:指令按字节长度可以分为三种:指令格式指令格式指令格式指令格式指令的格式
3、:指令的格式:指令的格式:指令的格式:例如:例如:例如:例如:MOV AMOV A,R0R0例如:例如:例如:例如:MOV AMOV A,30H30H例如:例如:例如:例如:MOV DPTRMOV DPTR,#2010H#2010H2一、寻址方式一、寻址方式(找信找信找信找信方式方式方式方式)我的信在他我的信在他我的信在他我的信在他那那那那!找信找信找信找信去去去去!注:找信是寻找信的“地址”!3目的地目的地目的地目的地操作数操作数MOV P1,MOV P1,#55H55HMOV A,MOV A,#01H01H#55H55H目的地目的地信信寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对
4、寻址位寻址4目的地目的地目的地目的地寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址内部内部内部内部RAMRAM或或或或SFRSFR区区区区操作数操作数XXHXXHMOV P1,20HMOV P1,20H20H20H目的地目的地20H20H注:寻址是寻操作数的“地址”!直接给出地址直接给出地址2020H H直接寻址直接寻址直接寻址直接寻址5目的地目的地目的地目的地寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址寄存器寄存器寄存器寄存器目的地目的地操作数操作数XXHXXHMOV P1,AMOV P1,A寄存器寄存器寄存器寄存器R0-R7ABDPTR6寄存器寻址直接
5、寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址MOV P1,R0MOV P1,R0目的地目的地目的地目的地寄存器寄存器寄存器寄存器操作数操作数3AH3AH内部内部内部内部RAMRAM3AH3AH65H65H3AH3AHR0R1DPTR寄寄存存器器间间接接寻寻址址寄寄存存器器目的地目的地2 2号号号号信在信在2 2号箱子里号箱子里1 1号号号号7寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址MOVC A,A+DPTRMOVC A,A+DPTR目的地目的地目的地目的地寄存器寄存器寄存器寄存器操作数操作数内部内部内部内部RAMRAM65H65H基址基址基址基址寄存器寄存器寄存器
6、寄存器1212H H变址变址变址变址寄存器寄存器寄存器寄存器3434H H内部内部内部内部RAMRAM46H46H65H65HADPTRPC46H46H8目的地目的地目的地目的地寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址操作数操作数SJMP 54HSJMP 54H+54H54HPCPC2002H2002H2002H =2056H2002H =2056HPCPC2056H2056H9寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址20H20H27H27H21H21H28H28H21H21H20H20H100000000想一想想一想想一想想一想:如果想使如果想
7、使如果想使如果想使2727H H单单单单元的元的元的元的第第第第3 3位位位位置置置置1 1,该怎么办呢该怎么办呢该怎么办呢该怎么办呢?10单元地址单元地址单元地址单元地址2FH2FH2FH2FH2EH2EH2EH2EH2DH2DH2DH2DH2CH2CH2CH2CH2BH2BH2BH2BH2AH2AH2AH2AH29H29H29H29H28H28H28H28H 26H26H26H26H25H25H25H25H24H24H24H24H23H23H23H23H22H22H22H22H21H21H21H21H20H20H20H20H7F7F77776F6F67675F5F57574F4F47473
8、7372F2F27271F1F17170F0F0707MSBMSBMSBMSB 位地址位地址位地址位地址 LSBLSBLSBLSB7E7E76766E6E66665E5E56564E4E4646 36362E2E26261E1E16160E0E06067D7D75756D6D65655D5D55554D4D454535352D2D25251D1D15150D0D05057C7C74746C6C64645C5C54544C4C4444 34342C2C24241C1C14140C0C04047B7B73736B6B63635B5B53534B4B4343 33332B2B23231B1B1313
9、0B0B03037A7A72726A6A62625A5A52524A4A4242 32322A2A22221A1A12120A0A020279797171696961615959515149494141 313129292121191911110909010178787070686860605858505048484040 3030282820201818101008080000位寻址地址表位寻址地址表位寻址地址表位寻址地址表 例:SETB 3DHSETB 3DHSETB 3DHSETB 3DH3D3D3C3C3B3B3F3F3E3E3A3A3939383827H27H11寄存器寻址直接寻址立
10、即数寻址寄存器间接寻址变址寻址相对寻址位寻址SETB 3DHSETB 3DH20H20H27H27H21H21H28H28H21H21H20H20H00000001 012二、指令系统二、指令系统1、指令描述约定、指令描述约定符符 号号含含 义义RnRn表示当前选定寄存器组的工作寄存器表示当前选定寄存器组的工作寄存器R0R0R7R7RiRi表示作为间接寻址的地址指针表示作为间接寻址的地址指针R0R0R1R1#data#data表示表示8 8位立即数,即位立即数,即0000H HFFHFFH#data16#data16表示表示1616位立即数,即位立即数,即00000000H HFFFFHFFF
11、FHaddr16addr16表示表示1616位地址,用于位地址,用于6464K K范围内寻址范围内寻址addr11addr11表示表示1111位地址,用于位地址,用于2 2K K范围内寻址范围内寻址directdirect8 8位直接地址,可以是内部位直接地址,可以是内部RAMRAM区的某一单元或某一专用功能寄存器的地址区的某一单元或某一专用功能寄存器的地址RelRel带符号的带符号的8 8位偏移量(位偏移量(-128-128+127+127)BitBit位寻址区的直接寻址位位寻址区的直接寻址位(X X)X X地址单元中的内容,或地址单元中的内容,或X X作为间接寻址寄存器时所指单元的内容作为
12、间接寻址寄存器时所指单元的内容将将 后面的内容传送到前面去后面的内容传送到前面去132、MCS-51的指令的指令2.1 2.1 2.1 2.1 数据传送指令(数据传送指令(数据传送指令(数据传送指令(29292929条)条)条)条)2.2 2.2 2.2 2.2 算术运算指令(算术运算指令(算术运算指令(算术运算指令(24242424条)条)条)条)2.3 2.3 2.3 2.3 逻辑运算指令(逻辑运算指令(逻辑运算指令(逻辑运算指令(24242424条)条)条)条)2.4 2.4 2.4 2.4 控制转移指令(控制转移指令(控制转移指令(控制转移指令(17171717条)条)条)条)2.5
13、2.5 2.5 2.5 位操作指令(位操作指令(位操作指令(位操作指令(17171717条)条)条)条)14目的地址目的地址目的地址目的地址源地址源地址源地址源地址数数数数 据据据据MOV ,MOV A,#20H,A ARnRndirect1direct1RiRiA ARnRndirect2direct2RiRi#data#dataA ARnRndirect2direct2RiRi#data#dataMOVMOVRnRnA A#data#datadirect2direct2direct1direct1A ARnRndirect2direct2RiRi#data#dataRiRiA Adirec
14、t2direct2#data#data20H20HA A2.1 2.1 2.1 2.1 数据传送指令(数据传送指令(数据传送指令(数据传送指令(29292929条)条)条)条)8 8 8 8位位位位数据传送指令数据传送指令数据传送指令数据传送指令(15(15(15(15条条条条)152.1 2.1 2.1 2.1 数据传送指令数据传送指令数据传送指令数据传送指令举例举例MOVA,R1;将工作寄存器R1中的值送入到累加器A中,R1中的值保持不变。MOVA,50H;将内存50H单元中的值送入到累加器A中,50H单元中的值保持不变。MOVA,R1;先看R1中是什么值,把这个值当做地址,并将这个地址单
15、元中的值送入累加器A中,前面我们已学过,这是寄存器间接寻址方式。162.1 2.1 2.1 2.1 数据传送指令(数据传送指令(数据传送指令(数据传送指令(29292929条)条)条)条)16161616位位位位数据传送指令(数据传送指令(数据传送指令(数据传送指令(1 1 1 1条)条)条)条)MOVDPTR,#data16 外部外部外部外部数据传送指令数据传送指令数据传送指令数据传送指令(4(4(4(4条条条条)MOVX ,,A ADPTRDPTRRiRiMOVXMOVXA ADPTRDPTRRiRiDPTRDPTRA ARiRiDPTRDPTRA ARiRiA A172.12.12.12
16、.1外部数据传送指令外部数据传送指令外部数据传送指令外部数据传送指令举例举例例:将外部RAM中100H单元中的内容送入外部RAM中200H单元中。MOVDPTR,#0100HMOVXA,DPTRMOVDPTR,#0200HMOVXDPTR,A18交换和查表类交换和查表类交换和查表类交换和查表类指令指令指令指令(9(9(9(9条条条条),A AXCHXCHdirectdirectDPTRDPTRRiRidirectdirectA ADPTRDPTRRiRi1)1)1)1)字节交换指令字节交换指令字节交换指令字节交换指令(3(3(3(3条条条条)2)2)2)2)低半字节交换指令低半字节交换指令低半
17、字节交换指令低半字节交换指令(1(1(1(1条条条条)XCHD A,XCHD A,RiRi3)3)3)3)累加器累加器累加器累加器A A A A中高中高中高中高4 4 4 4位和低位和低位和低位和低4 4 4 4位交换位交换位交换位交换(1(1(1(1条条条条)SWAP A SWAP A 4)4)4)4)查表指令查表指令查表指令查表指令(2(2(2(2条条条条)MOVC A,A+PCMOVC A,A+PCMOVC A,A+DPTRMOVC A,A+DPTR5)5)5)5)堆栈操作指令堆栈操作指令堆栈操作指令堆栈操作指令(2(2(2(2条条条条)PUSH directPUSH directPOP
18、 directPOP direct19directdirectdirectdirect2.22.22.22.2算术运算类指令(算术运算类指令(算术运算类指令(算术运算类指令(24242424条)条)条)条)加法加法加法加法指令(指令(指令(指令(8 8 8 8条)条)条)条)A A ,RnRnRiRi#data#dataADDADDRnRnRiRi#data#datadirectdirectdirectdirectA A ,RnRnRiRi#data#dataADDCADDCRnRnRiRi#data#data减法减法减法减法指令指令指令指令(4(4(4(4条条条条)directdirectd
19、irectdirectA A ,RnRnRiRi#data#dataSUBBSUBBRnRnRiRi#data#dataBCDBCDBCDBCD码调整码调整码调整码调整指令指令指令指令(1(1(1(1条条条条)DA A DA A 注意注意注意注意:DA ADA A指令只能跟在指令只能跟在指令只能跟在指令只能跟在ADDADD或或或或ADDCADDC加法指令后,不适用于减法指令。加法指令后,不适用于减法指令。加法指令后,不适用于减法指令。加法指令后,不适用于减法指令。20带进带进位加法指令位加法指令位加法指令位加法指令 例如:1067H+10A0H,先做67H+A0H=107H,而107H显然超过
20、了0FFH,因此,最终保存在A中的数是7,而1则到了PSW中的CY位了,换言之,CY就相当于100H。然后再做10H+10H+CY,结果是21H,所以最终的结果是2107H。21助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器机器周期周期INCA00000100AA+1影响影响PSW的的P标志标志1INCRn00001rrrRnRn+1n=07,rrr=0001111INCdirect0101direct(direct)(direct)+11INCRi0000011i(Ri)(Ri)+1i=0,11INCDPTR10100011DPTRDPTR+12DECA00010
21、100AA-1影响影响PSW的的P标志标志1DECRn00011rrrRnRn-1n=07,rrr=0001111DECdirect00010101direct(direct)(direct)+11DECRi0001011i(Ri)(Ri)-1i=0,11加加加加1 1 1 1减减减减1 1 1 1指令指令指令指令22加加加加1 1 1 1减减减减1 1 1 1指令指令指令指令例:(A)=12H,(R0)=33H,(21H)=32H,(34H)=22H,DPTR=1234H。执行下面的指令;INCA;(A)=13HINCR0;(R0)=34HINC21H;(21H)=33HINCR0;(34H
22、)=23HINCDPTR;(DPTR)=1235H23练习练习练习练习1.执行如下三条指令后,执行如下三条指令后,30H单元的内容是单元的内容是()。MOVR1,#30HMOV40H,#0EHMOVR1,40HA.40HB.30HC.0EHD.FFH2.有如下程序段有如下程序段:MOVR0,#30HSETBCCLRAADDCA,#00HMOVR0,A执行结果是执行结果是()。A.(30H)=00HB.(30H)=01HC.(00H)=00HD.(00H)=01H24乘法乘法乘法乘法指令指令指令指令(1(1(1(1条条条条)MUL A BMUL A B这个指令的作用是把累加器A和寄存器B中的8位
23、无符号数相乘,所得到的是16位乘积,这个结果低低8位存在累加器位存在累加器A,而高而高8位存位存在寄存器在寄存器B中中。如果OV=1,说明乘积大于0FFFFH(65536),否则OV=0,但进位标志位CY总是等于0。例:(A)=4EH,(B)=5DH,执行指令MULAB后,乘积是1C56H,所以在B中放的是1CH,而A中放的则是56H。除法除法除法除法指令指令指令指令(1(1(1(1条条条条)DIV A BDIV A B这这个指令的作用是把累加器个指令的作用是把累加器A A的的8 8位无符号整数除以寄存器位无符号整数除以寄存器B B中的中的8 8位无符号整数,所得到的位无符号整数,所得到的商存
24、在累加器商存在累加器商存在累加器商存在累加器A A,而而余数存在寄存器余数存在寄存器余数存在寄存器余数存在寄存器B B中中中中。除法运算除法运算总总是使是使OVOV和和进进位位标标志位志位CYCY等于等于0 0。如果。如果OV=1OV=1,表明寄存表明寄存器器B B中的内容中的内容为为0000H H,那么那么执执行行结结果果为为不确定不确定值值,表示除法有溢出。,表示除法有溢出。例如:13/5,其商是2,余数是3。除了以后,商会放在A中,余数放在B中,CY和OV都是0。如果在做除法前B中的值是00H,也就是除数为0,那么OV=1252.32.32.32.3逻辑及移位类指令逻辑及移位类指令逻辑及
25、移位类指令逻辑及移位类指令逻辑与逻辑与逻辑与逻辑与指令(指令(指令(指令(6 6 6 6条)条)条)条)助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器机器周期周期ANLA,direct01010101directAAdirect按位相与按位相与1ANLA,Rn01011rrrAARnn=07,rrr=0001111ANLA,Ri0101011iAA(Ri)i=0,11ANLA,#data01010100dataAA#data1ANLdirect,A01010010direct(direct)(direct)A不影响不影响PSW的的P标志标志1ANLdirect,#d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机应用课件 单片机 应用 课件 MCS 51 指令系统