单片机指令系统课件

上传人:痛*** 文档编号:147750449 上传时间:2022-09-03 格式:PPT 页数:61 大小:1.64MB
收藏 版权申诉 举报 下载
单片机指令系统课件_第1页
第1页 / 共61页
单片机指令系统课件_第2页
第2页 / 共61页
单片机指令系统课件_第3页
第3页 / 共61页
资源描述:

《单片机指令系统课件》由会员分享,可在线阅读,更多相关《单片机指令系统课件(61页珍藏版)》请在装配图网上搜索。

1、第三部分第三部分80C51的指令系统的指令系统 MCS-51的指令系统的指令系统共有共有111条指令条指令,按其,按其功能可分为五大类:功能可分为五大类:3.1 指令系统简介指令系统简介数据传送类指令(数据传送类指令(28条)条)算术运算类指令(算术运算类指令(24条)条)逻辑运算类指令(逻辑运算类指令(25条)条)控制转移类指令(控制转移类指令(17条)条)布尔操作布尔操作(位位)类指令类指令(17条)条)指令的表示方法称为指令格式,其内容包括指令指令的表示方法称为指令格式,其内容包括指令的长度和指令内部信息的安排等。一条指令通常的长度和指令内部信息的安排等。一条指令通常由操作码和操作数两部

2、分组成。由操作码和操作数两部分组成。指令格式指令格式 指令的长度有单字节、双字节和三字节等。指令的长度有单字节、双字节和三字节等。NOPINC R0MOV R0,R7操作码操作码操作数操作数;注释注释 寄存器工作组(由寄存器工作组(由RS1、RS0选择)选择)位寻址区(位寻址区(16*8=128位)位)普通普通RAM共共80个字节个字节 3.2 寻址方式寻址方式RnRn 工作寄存器,可以是工作寄存器,可以是R0-R7R0-R7中的任意一个。中的任意一个。#datadata 8 8位立即数,在位立即数,在0000H HFFHFFH范围内。如范围内。如#12#12H H。directdirect

3、片内片内RAMRAM单元的直接地址。单元的直接地址。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

5、MOV DPTR,#data16直接寻址是访问特殊功能寄存器的唯一方法。直接寻址是访问特殊功能寄存器的唯一方法。立即数前立即数前面加面加“#”片内片内RAM地址地址例如:例如:INC R0 3、寄存器寻址、寄存器寻址寄存器寻址的寻址范围包括:寄存器寻址的寻址范围包括:(1)四个寄存器组共四个寄存器组共32 个通用寄存器个通用寄存器(2)部分特殊功能寄存器部分特殊功能寄存器 寄存器间接寻址是指在指令中要到寄存器寄存器间接寻址是指在指令中要到寄存器的内容所指的地址去取操作数。即的内容所指的地址去取操作数。即寄存器寄存器中放的是操作数的地址中放的是操作数的地址。在寄存器的名称。在寄存器的名称前面加前

6、缀前面加前缀“”。只能使用只能使用R0R0或或R1R1。4、寄存器间接寻址、寄存器间接寻址 例如:例如:ANL A,R1 寄存器间接寻址的范围:寄存器间接寻址的范围:(1)片内)片内RAM低低128单元单元:这里只能使用:这里只能使用R0或或R1为为 间址寄存器,其通用形式写为间址寄存器,其通用形式写为Ri(i0,1)。MOV A,R0 (3)片外)片外RAM低低256单元单元:也可使用:也可使用R0或或R1作作间址寄存器。例如:间址寄存器。例如:MOVX A,R0(2)片外)片外RAM 64KB:使用:使用DPTR作为间址寄存作为间址寄存器,其形式为器,其形式为DPTR,例如:,例如:MOV

7、X A,DPTR 5、相对寻址、相对寻址 相对寻址是指在指令中给出的操作数为程序转移的相对寻址是指在指令中给出的操作数为程序转移的偏移量。相对寻址是为实现程序的相对转移而设立偏移量。相对寻址是为实现程序的相对转移而设立的,的,为相对转移指令所采用为相对转移指令所采用。目的地址转移指令所在地址十转移指令字节数十目的地址转移指令所在地址十转移指令字节数十relrel是一个带符号的是一个带符号的8位二进制补码数,范围是位二进制补码数,范围是:-128 +127。偏移量为正时,往地址增大的方向,。偏移量为正时,往地址增大的方向,为负时,向地址减小的方向。为负时,向地址减小的方向。例如:例如:JC 03

8、H ;假设当前;假设当前PC值为值为1000H转移地址为:转移地址为:1000H+2H+(03H)=1005H转移指令字节数转移指令字节数JC 03H的机器码为的机器码为40H、03H偏移量偏移量 变址寻址是指以变址寻址是指以DPTR或或PC作基址寄存器,累加器作基址寄存器,累加器A作变址寄存器,以两者内容相加形成的作变址寄存器,以两者内容相加形成的16位程序位程序存储器地址作为操作数地址。又称存储器地址作为操作数地址。又称基址寄存器基址寄存器+变变址寄存器间接寻址址寄存器间接寻址。6、变址寻址(基址寄存器、变址寻址(基址寄存器+变址寄存器间接寻址)变址寄存器间接寻址)假设假设:(A)E0H,

9、(DPTR)2000H 操作数地址为操作数地址为E0H十十2000H20E0H,若,若20E0H单单元的内容为元的内容为47H,则该指令执行的结果是,则该指令执行的结果是A的内容的内容为为47H。MOVC A,A+DPTR MOVC A,A+PC7、位寻址、位寻址 位寻址位寻址 的范围:的范围:(1)片内)片内RAM中的位寻址区中的位寻址区(2)可位寻址的特殊功能寄存器位)可位寻址的特殊功能寄存器位寻址位在指令中有四种表示方法:寻址位在指令中有四种表示方法:(1)直接使用位地址表示方法。)直接使用位地址表示方法。SETB 8DH(2)单元地址加位的表示方法。)单元地址加位的表示方法。SETB

10、88H.5 ;88H单元的位单元的位5(3)特殊功能寄存器符号加位的表示方法。)特殊功能寄存器符号加位的表示方法。SETB PSW.5 PSW寄存器的位寄存器的位5,则表示为,则表示为PSW.5。(4)位名称表示方法,特殊功能寄存器中的)位名称表示方法,特殊功能寄存器中的一些寻址位是有名称的。一些寻址位是有名称的。SETB F0 PSW寄存器位寄存器位5为为F0标志位。标志位。操作数寻址方式和有关空间操作数寻址方式和有关空间 寻址方式寻址方式寻址空间寻址空间立即寻址程序存储器ROM直接寻址片内RAM低128B和特殊功能寄存器SFR寄存器寻址工作寄存器R0 R7,A,B,CY,DPTR寄存器间接

11、寻址片内RAM低128B R0,R1,片外RAM(R0,R1,DPTR)变址寻址程序存储器(A+PC,A+DPTR)相对寻址程序存储器+127B -128B范围(PC+偏移量)位寻址片内RAM的20H 2FH字节地址和部分特殊功能寄存器SFR3.3 数据传送指令数据传送指令 数据传送指令共有数据传送指令共有28条。按照功能又可分为:条。按照功能又可分为:一般传送指令、目的地址传送指令、累加器一般传送指令、目的地址传送指令、累加器传送指令和栈操作传送指令传送指令和栈操作传送指令。一般传送指令格式一般传送指令格式 MOV MOV ,MOVX MOVX ,MOVC MOVC ,它的功能是把源字节的内

12、容送到目的字节,而源字它的功能是把源字节的内容送到目的字节,而源字节的内容不变。节的内容不变。1、以累加器以累加器A为目的操作数的指令组,共有为目的操作数的指令组,共有4条:条:MOV A,Rn ;(A)(Rn)MOV A,direct ;(A)(direct)MOV A,Ri ;(A)(Ri)MOV A,#data ;(A)#data一、内部一、内部RAM数据传送指令数据传送指令 2、以寄存器以寄存器Rn为目的操作数的指令组,共有为目的操作数的指令组,共有3条:条:MOV Rn,A ;(Rn)(A)MOV Rn,ditect ;(Rn)(direct)MOV Rn,#data ;(Rn)#d

13、ata 例:例:MOV R3,#30H3、以直接地址以直接地址direct为目的操作数的指令组,共有为目的操作数的指令组,共有5条条指令:指令:MOV direct,A ;(direct)(A)MOV direct,Rn ;(direct)(Rn)MOV direct,direct ;(direct2)(direct1)MOV direct,Ri ;(direct)(Ri)MOV direct,#data ;(direct)#data 例:例:MOV 30H,32H4、以间接寻址寄存器、以间接寻址寄存器Ri为目的操作数的指令组,共为目的操作数的指令组,共 有有3条指令:条指令:MOV Ri,A

14、 ;(Ri)(A)MOV Ri,direct ;(Ri)(direct)MOV Ri,#data ;(Ri)#data 例:例:MOV R0,35H MOV R0,#12H Ri只能是只能是R0、R1。MOV A,5EH ;片内片内RAM的的5EH单元内容送单元内容送A,这里,这里5EH为直接地址。为直接地址。MOV A,#5EH ;立即数立即数5EH送送A。MOV 5EH,#5EH ;这是一条这是一条3字节指令,表示把立即数字节指令,表示把立即数5EH送到片内送到片内RAM中的中的5EH地址单元中去。地址单元中去。MOV 5EH,4EH ;这是一条这是一条3字节指令,表示把字节指令,表示把4

15、EH单元的内容送到单元的内容送到5EH单元中去。这是片内数据存储单元中的直接地址单元单元中去。这是片内数据存储单元中的直接地址单元数据之间的直接传送。数据之间的直接传送。5、16位数据传送指令位数据传送指令 MOV DPTR,#data16 ;(DPTR)#data16 这是这是80C51中惟一的一条中惟一的一条16位指令。位指令。MOV DPTR,#1234H 执行结果为执行结果为(DPH)12H,(DPL)34H。二、外部数据传送指令二、外部数据传送指令 MOVX A,Ri ;MOVX A,DPTR MOVX Ri,A ;MOVX DPTR,A 也可实现累加器也可实现累加器A与与I/O口之

16、间传送一个字节数口之间传送一个字节数据的指令。据的指令。MOV DPTR,#0E000H MOVX A,DPTR 0E000H可以为外部数据存储器地址或可以为外部数据存储器地址或I/O接口地接口地址。若为接口地址,其功能为从此接口输入数据。址。若为接口地址,其功能为从此接口输入数据。MOV DPTR,#2040H MOVX A,DPTR MOV DPTR,#2030H MOVX DPTR,A三、查表指令三、查表指令 A与与ROM传送指令传送指令MOVC组或称查表指令,共有组或称查表指令,共有2条指令:条指令:MOVC A,A十十PC MOVC A,A十十DPTR程序存储器内容程序存储器内容10

17、10H:02H1011H:04H1012H:06H1012H:08H1000H:MOV A,#0DH1002H:MOVC A,A+PC1003H:MOV R0,AA=02H;R0=02H;PC=1004HPC值为下一条值为下一条指令的地址指令的地址1010H*没有寄存器之间的传送指令,如:没有寄存器之间的传送指令,如:MOV R1,R2*三种三种MOV指令:指令:MOV :读写片内读写片内RAM、SFR、R0 R7 MOVC:读程序存储器:读程序存储器(含片内、片外)(含片内、片外)MOVX:读写外部:读写外部RAM或或IO*片外片外RAM与与IO地址统一编址:地址统一编址:MOVX A,DP

18、TR ;由由DPTR区分是区分是RAM地址还是地址还是IO地址地址四、堆栈操作指令四、堆栈操作指令 这组指令共有这组指令共有2条指令:条指令:PUSH direct ;SP+1SP,(,(direct)(SP)POP direct ;(;(SP)(direct)SP-1SP地址加地址加1,压栈,压栈出栈,地址减出栈,地址减160HSP为当前堆栈地址为当前堆栈地址63H62H61Habcd栈底栈底5FH例:例:已知内部已知内部RAM的的50H单元中存放数值单元中存放数值0AAH,设堆栈指,设堆栈指针为针为60H,把此数据压入堆栈,然后弹出到,把此数据压入堆栈,然后弹出到40H单元中。单元中。MO

19、V SP,#60H ;60H SPPUSH 50H ;SP+1 SP,(,(50H)(61H)POP 40H ;(;(61H)(40H),),SP-1 SP当前堆栈地址当前堆栈地址61H60HAA栈底栈底AA50H61H60HAAAA40H 当前堆栈地址当前堆栈地址(1)字节交换指令)字节交换指令XCH组,共有组,共有3条指令:条指令:XCH A,Rn XCH A,direct XCH A,Ri(2)半字节交换指令:)半字节交换指令:XCHD A,R0 ;两个操作数的低;两个操作数的低4位交换位交换 SWAP A ;A的高的高4位与低位与低4位互换位互换 五、交换指令五、交换指令3.4 算术运

20、算指令算术运算指令 算术运算类指令都是通过算术运算类指令都是通过ALU进行的。它包括加、进行的。它包括加、减、乘、除四则运算指令共有减、乘、除四则运算指令共有24条。条。一、一、加法指令加法指令 ADD二、二、带进位位加法指令带进位位加法指令 ADDC三、三、带借位减法指令带借位减法指令 SUBB四、乘法指令四、乘法指令 MUL AB五、除法指令五、除法指令 DIV AB六、加六、加1指令指令 INC七、减七、减1指令指令 DEC八、十进制调整指令八、十进制调整指令 DA一、一、加法指令加法指令 这组指令的助记符为这组指令的助记符为ADD,共有,共有4条指令:条指令:ADD A,Rn ;(A)

21、+(Rn)(A)ADD A,direct ;(A)+(direct)(A)ADD A,Ri ;(A)+(Rn)(A)ADD A,#data ;(A)+#data(A)算术运算结果将使进位标志算术运算结果将使进位标志(CY)、半进位标志、半进位标志(AC)、溢出标志溢出标志(OV)置位或复位。置位或复位。这类指令将影响标志位这类指令将影响标志位AC、CY、OV、P P=0;1的个数为偶数的个数为偶数OV=1;AC=0;CY=1;有进位;有进位 1 1 0 0 0 0 1 0+1 0 0 1 0 0 1 11 0 1 0 1 0 1 0 1、1 1 0 0 1 0 1 0+1 1 0 0 1 0

22、0 01 1 0 0 1 0 0 1 0、P=1;1的个数为奇数的个数为奇数OV=0;AC=1;CY=1;有进位;有进位二、二、带进位位加法指令带进位位加法指令 ADDC A,Rn ;(A)(A)+(Rn)+(CY)ADDC A,direct ;(A)(A)+(direct)+(CY)ADDC A,Ri ;(A)(A)+(Rn)+(CY)ADDC A,#data ;(A)(A)+#data+(CY)这类指令将影响标志位这类指令将影响标志位AC、CY、OV、P 三、带借位减法指令三、带借位减法指令这类指令的助记符为这类指令的助记符为SUBB,共有,共有4条指令:条指令:SUBB A,Rn ;(A

23、)一一(Rn)一一(CY)(A)SUBB A,direct ;(A)一一(direct)一一(CY)(A)SUBB A,Ri ;(A)一一(Rn)一一(CY)(A)SUBB A,#data ;(A)一一#data一一(CY)(A)在在80C51中没有不带借位的减法。需要时,可以在中没有不带借位的减法。需要时,可以在“SUBB”指令前,用指令前,用“CLR C”指令将指令将CY清零。清零。四、乘法指令四、乘法指令 乘法指令的助记符为乘法指令的助记符为MUL,只有,只有1条指令:条指令:MUL AB例如:设例如:设(A)4EH,(B)5DH执行指令为执行指令为MUL AB执行结果为乘积执行结果为乘

24、积1C56H,(A)56H,(B)1CH。(OV)=1,(,(P)=0乘法指令的功能是将乘法指令的功能是将A和和B中两个无符号中两个无符号8位二进制位二进制相乘,相乘,乘积低乘积低8位存于位存于A中,高中,高8位存于位存于B中中。乘积。乘积小于小于255时,时,OV=0,否则,否则OV=1。五、除法指令五、除法指令 除法指令的助记符为除法指令的助记符为DIV,只有,只有1条指令:条指令:DIV AB除法指令的功能是将除法指令的功能是将A中无符号二进制数除以中无符号二进制数除以B中的二中的二进制数,进制数,商存于商存于A,余数存于,余数存于B中,并将中,并将CY和和OV清清0,若若B=0,则,则

25、OV置置1。但。但CY总是清总是清0的。的。例如:设例如:设(A)11H,(B)04H执行指令为执行指令为 DIV AB执行结果为执行结果为(A)4,(B)1,(OV)=0,(P)=1六、加六、加1指令指令 这组指令的助记符为这组指令的助记符为INC,共有,共有5条指令:条指令:INC Rn ;(Rn)(Rn)+1 INC direct ;(direct)(direct)+1 INC Ri ;(Ri)(Ri)+1 INC A ;(A)(A)+1 INC DPTR ;(DPTR)(DPTR)+1这类指令不影响各个标志位。这类指令不影响各个标志位。与与ADD Rn,1 的区别?的区别?七、减七、减

26、1指令指令 这类指令的助记符为这类指令的助记符为DEC,共有,共有4条指令:条指令:DEC Rn ;(Rn)一一1(Rn)DEC direct ;(direct)一一1 direct DEC Ri ;(Ri)一一1(Ri)DEC A ;(A)一一1(A)这类指令不影响各个标志位。这类指令不影响各个标志位。八、十进制调整指令八、十进制调整指令 该指令的助记符为该指令的助记符为DA,只有,只有1条指令:条指令:DA A 该指令的功能是对该指令的功能是对BCD码的加法结果进行调整。若码的加法结果进行调整。若两个两个压缩型压缩型BCD码按二进制数相加之后,必须经此码按二进制数相加之后,必须经此指令的调

27、整才能得到压缩型指令的调整才能得到压缩型BCD码的和数。码的和数。若若(A0-3)9或或(AC)1,则执行,则执行(A0-3)+6(A0-3);若若(A4-7)9或或(CY)1,则执行,则执行(A4-7)+6(A4-7);(A)0 1 0 1 0 1 1 0 56 BCD (R3)0 1 1 0 0 1 1 1 67 BCD +(CY)0 0 0 0 0 0 0 1 01 1 0 1 1 1 1 1 0 +0 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 124 BCDADDC A,R3 ;设设A=56BCD,R3=67BCD,CY=1DA A3.5 逻辑运算类指令逻辑运算类

28、指令一、逻辑与一、逻辑与ANL ANL ANL A,direct;l ANL A,Ri;l ANL A,#data;l ANL direct,A;l ANL direct,#data;l ANL A,Rn;二、逻辑或二、逻辑或ORLORL A,direct;l ORL A,Ri;l ORL A,#data;l ORL direct,A;l ORL direct,#data;l ORL A,Rn;三、逻辑异或三、逻辑异或XRLl XRL A,direct;l XRL A,Ri;l XRL A,#data;l XRL direct,A;l XRL direct,#data;l XRL A,Rn;(

29、1 1)循环左移)循环左移 RL A;RL A;不带进位不带进位CyCy位左移位。位左移位。A7 A0A7 A0A7 A0A7 A0(2 2)循环右移)循环右移 RR A;RR A;不带进位不带进位CyCy位右移位。位右移位。四、循环移位指令四、循环移位指令A7 A0A7 A0CyCyA7 A0A7 A0CyCy(3)RLC A;带进位带进位Cy位左移位。位左移位。(4)RRC A;带进位带进位Cy位右移位。位右移位。五、五、累加器清零指令:累加器清零指令:CLR A六、六、累加器取反指令:累加器取反指令:CPL A 00100101取反得取反得 11011010 3.6 控制转移类指令控制转

30、移类指令一、无条件转移指令一、无条件转移指令l LJMP addr16;该指令是长跳转,该指令是长跳转,addr16表示跳转到的地址,一表示跳转到的地址,一般为标号字符。般为标号字符。lAJMP addr11;PC100 addr11 绝对跳转指令,绝对跳转指令,跳转范围为跳转范围为2k。PC高高4位不变。位不变。Addr11为目标地址,一般为标为目标地址,一般为标号字符。号字符。lSJMP rel;短跳转指令,短跳转指令,rel一般为标号字符。范围为:一般为标号字符。范围为:128127。二二、条件转移指令、条件转移指令CJNE A,#data,rel ;当当A中的值和立即数中的值和立即数d

31、ata不相等则跳转。不相等则跳转。CJNE A,direct,rel;CJNE Rn,#data,rel;CJNE Rn,direct,rel;上述指令上述指令转移范围为:转移范围为:-128 +127B。JZ rel;A=0则跳转,否则不跳转。则跳转,否则不跳转。JNZ rel;A0则跳转,否则不跳转。则跳转,否则不跳转。DJNZ Rn,rel;Rn=Rn-1,如果,如果Rn0则跳转,否则不跳转。则跳转,否则不跳转。DJNZ direct,rel;*循环转移指令循环转移指令*空操作指令空操作指令 NOP ;JMP A+DPTR;PC A+DPTR 通用跳转指令,跳转的目的地址是通用跳转指令,

32、跳转的目的地址是A和和DPTR值的和。值的和。三三、间接间接转移指令转移指令四四、调用和返回指令、调用和返回指令该类指令用于子程序的调用和返回。该类指令用于子程序的调用和返回。ACALL addr11;2k范围范围内的子程序调用。内的子程序调用。LCALL addr16;长调用指令,可以在长调用指令,可以在64k范围内调用。范围内调用。RET;子程序的返回指令。子程序的返回指令。RETI;中断子程序的返回指令。返回到主程序中调用该中断子程序的返回指令。返回到主程序中调用该子程序的断口处。子程序的断口处。3.7 位操作类指令位操作类指令位寻址位寻址 的范围:的范围:(1)片内)片内RAM中的位寻

33、址区中的位寻址区(2)可位寻址的特殊功能寄存器位)可位寻址的特殊功能寄存器位寻址位在指令中有四种表示方法:寻址位在指令中有四种表示方法:(1)SETB 8DH ;位地址位地址(2)SETB 88H.5 ;88H单元的位单元的位5(3)SETB PSW.5 ;PSW寄存器的位寄存器的位5(4)SETB F0 ;PSW寄存器位寄存器位5为为F0标志位。标志位。二、位修正指令二、位修正指令 CLR C;清清0 CLR bit;SETB C;置置1 SETB bit;CPL C;取反取反 CPL bit;一一、位传送指令位传送指令 MOV C,bit;将某位数据传送给将某位数据传送给Cy位。位。MOV

34、 bit,C;三、位逻辑运算指令三、位逻辑运算指令ANL C,bit;ANL C,/bit;ORL C,bit;ORL C,/bit;四、位控制转移类指令四、位控制转移类指令 JC rel;该指令是相对寻址,若该指令是相对寻址,若Cy=1则跳转,反之则顺则跳转,反之则顺序执行而不跳转。此指令为双字节指令,执行序执行而不跳转。此指令为双字节指令,执行后后PC首先加首先加2。JNC rel;与上一指令相反,若与上一指令相反,若Cy=0则跳转,反之则顺序则跳转,反之则顺序执行而不跳转。此指令为双字节指令,执行后执行而不跳转。此指令为双字节指令,执行后PC首先加首先加2。JBC bit,rel;该指令

35、为跳转清零指令。该指令为跳转清零指令。如果如果bit 位为位为1,则跳转,而且,则跳转,而且bit位清零。位清零。反之则不跳转,该指令为反之则不跳转,该指令为3字节指令。字节指令。JB bit,rel;Bit位为位为1时,转移时,转移JNB bit rel;Bit位不为位不为1时,转移时,转移该二指令同前边二指令。只是判断位是该二指令同前边二指令。只是判断位是bit。MOV C,A.5ANL C,80HMOV P1.4,C2000 E5 40 MOV A,40H2002 B5 50 03 CJNE A,50H,L12005 D2 20 SETB 20H2007 22 RET2008 40 03

36、 L1:JC L2200A D2 50 SETB 50H200C 22 RET200D D2 40 L2:SETB 40H200F 22 RETMCS-51单片机的指令集单片机的指令集助记符助记符功能说明功能说明字节数字节数振荡周期振荡周期MOV A,Rn寄存器内容送入累加器寄存器内容送入累加器112MOV A,direct直接地址单元中的数据送入累加器直接地址单元中的数据送入累加器212MOV A,Ri间接间接RAM中的数据送入累加器中的数据送入累加器112MOV A,#data88位立即数送入累加器位立即数送入累加器212MOV Rn,A累加器内容送入寄存器累加器内容送入寄存器112MOV

37、 Rn,direct直接地址单元中的数据送入寄存器直接地址单元中的数据送入寄存器224MOV Rn,#data88位立即数送入寄存器位立即数送入寄存器212MOV direct,A累加器内容送入直接地址单元累加器内容送入直接地址单元212MOV direct,Rn寄存器内容送入直接地址单元寄存器内容送入直接地址单元224MOV direct,direct直接地址单元中的数据送入直接地址单元直接地址单元中的数据送入直接地址单元324MOV direct,Ri间接间接RAM中的数据送入直接地址单元中的数据送入直接地址单元224MOV direct,#data88位立即数送入直接地址单元位立即数送入

38、直接地址单元324MOV Ri,A累加器内容送入间接累加器内容送入间接RAM单元单元112MOV Ri,direct直接地址单元中的数据送入间接直接地址单元中的数据送入间接RAM单元单元224MOV Ri,#data88位立即数送入间接位立即数送入间接RAM单元单元212MOV DPTR,#data1616位立即数地址送入地址寄存器位立即数地址送入地址寄存器324MOVC A,A+DPTR以以DPTR为基地址变址寻址单元中的数据送入累加器为基地址变址寻址单元中的数据送入累加器124MOVC A,A+PC以以PC为基地址变址寻址单元中的数据送入累加器为基地址变址寻址单元中的数据送入累加器124M

39、OVX A,Ri外部外部RAM(8位地址位地址)送入累加器送入累加器124MOVX A,DPTR外部外部RAM(16位地址位地址)送入累加器送入累加器124MOVX Ri,A累加器送入外部累加器送入外部RAM(8位地址位地址)124MOVX DPTR,A累加器送入外部累加器送入外部RAM(16位地址位地址)124PUSH direct直接地址单元中的数据压入堆栈直接地址单元中的数据压入堆栈224POP direct堆栈中的数据弹出到直接地址单元堆栈中的数据弹出到直接地址单元224XCH A,Rn寄存器与累加器交换寄存器与累加器交换112XCH A,direct直接地址单元与累加器交换直接地址单

40、元与累加器交换212XCH A,Ri间接间接RAM与累加器交换与累加器交换112XCHD A,Ri间接间接RAM与累加器进行低半字节交换与累加器进行低半字节交换1121.1.数据传送类指令数据传送类指令 助记符助记符功能说明功能说明字节数字节数振荡周期振荡周期ADD A,Rn寄存器内容加到累加器寄存器内容加到累加器112ADD A,direct直接地址单元加到累加器直接地址单元加到累加器212ADD A,Ri间接间接RAM内容加到累加器内容加到累加器112ADD A,#data88位立即数加到累加器位立即数加到累加器212ADDC A,Rn寄存器内容带进位加到累加器寄存器内容带进位加到累加器1

41、12ADDC A,dirct直接地址单元带进位加到累加器直接地址单元带进位加到累加器212ADDC A,Ri间接间接RAM内容带进位加到累加器内容带进位加到累加器112ADDC A,#data88位立即数带进位加到累加器位立即数带进位加到累加器212SUBB A,Rn累加器带借位减寄存器内容累加器带借位减寄存器内容112SUBB A,dirct累加器带借位减直接地址单元累加器带借位减直接地址单元212SUBB A,Ri累加器带借位减间接累加器带借位减间接RAM内容内容112SUBB A,#data8累加器带借位减累加器带借位减8位立即数位立即数212INC A累加器加累加器加1112INC R

42、n寄存器加寄存器加1112INC direct直接地址单元内容加直接地址单元内容加1212INC Ri间接间接RAM内容加内容加1112INC DPTRDPTR加加1124DEC A累加器减累加器减1112DEC Rn寄存器减寄存器减1112DEC direct直接地址单元内容减直接地址单元内容减1212DEC Ri间接间接RAM内容减内容减1112MUL A,BA乘以乘以B148DIV A,BA除以除以B148DA A累加器进行十进制转换累加器进行十进制转换1122.算术操作类指令算术操作类指令 助记符助记符功能说明功能说明字节数字节数振荡周期振荡周期ANL A,Rn累加器与寄存器相累加器与

43、寄存器相“与与”112ANL A,direct累加器与直接地址单元相累加器与直接地址单元相“与与”212ANL A,Ri累加器与间接累加器与间接RAM内容相内容相“与与”112ANL A,#data8累加器与累加器与8位立即数相位立即数相“与与”212ANL direct,A直接地址单元与累加器相直接地址单元与累加器相“与与”212ANL direct,#data8直接地址单元与直接地址单元与8位立即数相位立即数相“与与”3243.逻辑操作移位类指令逻辑操作移位类指令 ORL A,Rn累加器与寄存器相累加器与寄存器相“或或”112ORL A,direct累加器与直接地址单元相累加器与直接地址单

44、元相“或或”212ORL A,Ri累加器与间接累加器与间接RAM内容相内容相“或或”112ORL A,#data8累加器与累加器与8位立即数相位立即数相“或或”212ORL direct,A直接地址单元与累加器相直接地址单元与累加器相“或或”212ORL direct,#data8直接地址单元与直接地址单元与8位立即数相位立即数相“或或”324XRL A,Rn累加器与寄存器相累加器与寄存器相“异或异或”112XRL A,direct累加器与直接地址单元相累加器与直接地址单元相“异或异或”212XRL A,Ri累加器与间接累加器与间接RAM内容相内容相“异或异或”112XRL A,#data8累

45、加器与累加器与8位立即数相位立即数相“异或异或”212XRL direct,A直接地址单元与累加器相直接地址单元与累加器相“异或异或”212XRL direct,#data8直接地址单元与直接地址单元与8位立即数相位立即数相“异或异或”324CLR A累加器清累加器清0112CPL A累加器求反累加器求反112RL A累加器循环左移累加器循环左移112RLC A累加器带进位循环左移累加器带进位循环左移112RR A累加器循环右移累加器循环右移112RRC A累加器带进位循环右移累加器带进位循环右移112SWAP A累加器半字节交换累加器半字节交换112助记符助记符功能说明功能说明字节数字节数振

46、荡周期振荡周期ACALL addr11绝对短调用子程序绝对短调用子程序224LACLL addr16长调用子程序长调用子程序324RET子程序返回子程序返回124RETI中断返回中断返回124AJMP addr11绝对短转移绝对短转移224LJMP addr16长转移长转移324SJMP rel相对转移相对转移224JMP A+DPTR相对于相对于DPTR的间接转移的间接转移124JZ rel累加器为零转移累加器为零转移224JNZ rel累加器非零转移累加器非零转移224CJNE A,direct,rel累加器与直接地址单元比较,不等则转移累加器与直接地址单元比较,不等则转移324CJNE

47、A,#data8,rel累加器与累加器与8位立即数比较,不等则转移位立即数比较,不等则转移324CJNE Rn,#data8,rel寄存器与寄存器与8位立即数比较,不等则转移位立即数比较,不等则转移324CJNE Ri,#data8,rel间接间接RAM单元,不等则转移单元,不等则转移324DJNZ Rn,rel寄存器减寄存器减1,非零转移,非零转移324DJNZ direct,rel直接地址单元减直接地址单元减1,非零转移,非零转移324NOP空操作空操作1124.控制转移类指令控制转移类指令助记符助记符功能说明功能说明字节数字节数 振荡周期振荡周期CLR C清进位位清进位位112CLR b

48、it清直接地址位清直接地址位212SETB C置进位位置进位位112SETB bit置直接地址位置直接地址位212CPL C进位位求反进位位求反112CPL bit直接地址位求反直接地址位求反212ANL C,bit进位位和直接地址位相进位位和直接地址位相“与与”224ANL C,bit进位位和直接地址位的反码相进位位和直接地址位的反码相“与与”224ORL C,bit进位位和直接地址位相进位位和直接地址位相“或或”224ORL C,bit进位位和直接地址位的反码相进位位和直接地址位的反码相“或或”224MOV C,bit直接地址位送入进位位直接地址位送入进位位212MOV bit,C进位位送入直接地址位进位位送入直接地址位224JC rel进位位为进位位为1则转移则转移224JNC rel进位位为进位位为0则转移则转移224JB bit,rel直接地址位为直接地址位为1则转移则转移324JNB bit,rel直接地址位为直接地址位为0则转移则转移324JBC bit,rel直接地址位为直接地址位为1则转移,该位清零则转移,该位清零3245.布尔变量操作类指令布尔变量操作类指令 会员免费下载

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!