当前位置:文档之家› 单片机指令表(全)

单片机指令表(全)

单片机指令表(全)
单片机指令表(全)

单片机指令以A开头的指令有18条,分别为:

1、ACALL addr11

指令名称:绝对调用指令

指令代码:A10A9A810001A7A6A5A4A3A2A1A0

指令功能:构造目的地址,进行子程序调用。其方法是以指令提供的11位地址(al0~a0),取代PC的低11位,PC的高5位不变。

操作内容:

PC←(PC)+2SP←(SP)+1

(SP)←(PC)7~0SP←(SP)+1

(SP)←(PC)15~8PC10~0←addrl0~0

字节数:2机器周期:2

使用说明:由于指令只给出子程序入口地址的低11位,因此调用范围是2KB。

2、ADD A,Rn

指令名称:寄存器加法指令指令代码:28H~2FH

指令功能:累加器内容与寄存器内容相加

操作内容:A←(A)+(Rn),n=0~7

字节数:1机器周期;1

影响标志位:C,AC,OV

3、ADD A,direct

指令名称:直接寻址加法指令指令代码:25H

指令功能:累加器内容与内部RAM单元或专用寄存器内容相加

操作内容:A←(A)+(direct)

字节数:2机器周期:1

影响标志位:C,AC,OV

4、ADD A,@Ri’

指令名称:间接寻址加法指令指令代码:26H~27H

指令功能:累加器内容与内部RAM低128单元内容相加

操作内容:A←(A)+((Ri)),i=0,1

字节数:1机器周期:1

影响标志位:C,AC,OV

5、ADD A,#data

指令名称:立即数加法指令指令代码:24H

指令功能:累加器内容与立即数相加

操作内容:A←(A)+data

字节数:2机器周期:1

影响标志位:C,AC,OV

6、ADDC A,Rn

指令名称:寄存器带进位加法指令指令代码:38H~3FH

指令功能:累加器内容、寄存器内容和进位位相加

操作内容:A←(A)+(Rn)+(C),n=0~7

字节数:1机器周期:1

影响标志位:C,AC,OV

7、ADDC A,direct

指令名称:直接寻址带进位加法指令指令代码:35H

指令功能:累加器内容、内部RAM低128单元或专用寄存器内容与进位位加

操作内容:A←(A)+(direct)+(C)

字节数:2机器周期:1

影响标志位:C,AC,OV

8、ADDC A,@Ri

指令名称:间接寻址带进位加法指令指令代码:36H~37H

指令功能:累加器内容,内部RAM低128单元内容及进位位相加

操作内容:A←(A)+((Ri))+(C),i=0,1

字节数:1机器周期:1

影响标志位:C,AC,OV

9、ADDC A,#data

指令名称:立即数带进位加法指令指令代码:34H

指令功能:累加器内容、立即数及进位位相加

操作内容:A←(A)+data+(C)

字节数:2机器周期:1

影响标志位:C,AC,OV

10、AJMP addr11

指令名称:绝对转移指令

指令代码:A10A9A810001A7A6A5A4A3A2A1A0

指令功能:构造目的地址,实现程序转移。其方法是以指令提供的11位地址,取代PC的低11位,.而PC的高5位保持不变。

操作内容:PC←(PC)+2PCl0~0←addrll

字节数:2机器周期:2

使用说明:由于addrll的最小值是000H,最大值是7FFH,因此地址转移范围是2KB。

11、ANL A,Rn

指令名称:寄存器逻辑与指令指令代码:58H~5FH

指令功能:累加器内容逻辑与寄存器内容

操作内容:A←(A)∧(Rn),n=0~7

字节数:1机器周期:1

12、ANL A,direct

指令名称:直接寻址逻辑与指令指令代码:55H

指令功能:累加器内容逻辑与内部RAM低128单元或专用寄存器内容

操作内容:A←(A)∧(diret)

字节数:2机器周期:1

13、ANL A,@Ri

指令名称:间接寻址逻辑与指令指令代码:56H~57H

指令功能:累加器内容逻辑与内部RAM低128单元内容

操作内容:A←(A)∧((Ri))i=0,1

字节数:1机器周期:1

14、ANL A,#data

指令名称:立即数逻辑与指令指令代码:54H

指令功能:累加器内容逻辑与立即数

操作内容:A←(A)∧data

字节数:2机器周期:1

15、ANL direct,A

指令名称:累加器逻辑与指令指令代码:52H

指令功能:内部RAM低128单元或专用寄存器内容逻辑与累加器内容

操作内容:direct←(A)∧(direct)

字节数:2机器周期:1

16、ANL direct,#data

指令名称:逻辑与指令指令代码:53H

指令功能:内部RAM低128单元或专用寄存器内容逻辑与立即数

操作内容:direct←(direct)∧data

字节数:3机器周期:2

17、ANL C,bit

指令名称:位逻辑与指令指令代码:82H

指令功能:进位标志逻辑与直接寻址位

操作内容:C←(C)∧(bit)

字节数:2机器周期:2

18、ANL C,/bit

指令名称:位逻辑与指令指令代码:B0H

指令功能:进位标志逻辑与直接寻址位的反

操作内容:C←(C)∧(bit)

字节数:2机器周期:2

单片机指令以C开头的指令有10条,分别为:

1、CJNE A,dircet,rel

指令名称:数值比较转移指令指令代码:B5H

指令功能:累加器内容与内部RAM低128字节或专用寄存器内容比较,不等则转移。操作内容:若(A)=(direct),则PC←(PC)+3,C←0

若(A)>(direct),则PC←(PC)+3+rel,C←0

若(A)<(direct),则PC←(PC)+3+rel,C←1

字节数:3机器周期:2

2、CJNE A,#data,rel

指令名称:数值比较转移指令指令代码:B4H

指令功能:累加器内容与立即数比较,不等则转移。

操作内容:若(A)=data,则PC←(PC)+3,C←0

若(A)>data,则PC←(PC)+3+rel,C←0

若(A)<data,则PC←(PC)+3+rel,C←1

字节数:3机器周期:2

3、CJNE Rn,#data,rel

指令名称:数值比较转移指令指令代码:B8H~BFH

指令功能:寄存器内容与立即数比较,不等则转移。

操作内容:若(Rn)=data,则PC←(PC)+3,C←0

若(Rn)>data,则PC←(PC)+3+rel,C←0

若(Rn)<data,则PC←(PC)+3+rel,C←1

字节数:3机器周期:2

4、CJNE@Ri,#data,rel

指令名称:数值比较转移指令指令代码:B6H~B7H

指令功能:内部RAM低128单元内容与立即数比较,不等则转移。

操作内容:若((Ri))=data,则PC←(PC)+3,C←0

若((Ri))>data,则PC←(PC)+3+rel,C←0

若((Ri))<data,则PC←(PC)+3+rel,C←1

字节数:3机器周期:2

5、CLR A

指令名称:累加器清0指令指令代码:E4H指令功能:累加器清0操作内容:A←0

字节数:1机器周期:1

6、CLR C

指令名称:进位标志清0指令指令代码:C3H

指令功能:进位位清0

操作内容:C←0

字节数:1机器周期:1

7、CLR bit

指令名称:直接寻址位清0指令指令代码:C2H指令功能:直接寻址位清0操作内容:bit←0

字节数:2机器周期:1

8、CPL A

指令名称:累加器取反指令指令代码:F4H

指令功能:累加器取反

操作内容:A←(A)

字节数:1机器周期:1

9、CPL C

指令名称:进位标志取反指令指令代码:B3H

指令功能:进位标志位状态取反

操作内容:C←(c取反)

字节数:1机器周期:1

10、CPL bit

指令名称:直接寻址位取反指令指令代码:B2H

指令功能:直接寻址位取反

操作内容:bit←(bit取反)

字节数:2机器周期:1

单片机指令以D开头的指令有8条,分别为:

1、DA A

指令名称:十进制调整指令指令代码:D4H

指令功能:对BCD码加法运算的结果进行有条件的修正

操作内容:若(A)3~0>9∨(AC)=1,则A3~0←(A)3~0+6

若(A)7~4>9∨(C)=1,则A7~4←(A)7~4+6

若(A)7~4=9∧(A)3~0>9,则A7~4←(A)7~4+6

字节数:1机器周期:1

使用说明:DA指令不影响溢出标志

2、DEC A

指令名称:累加器减1指令指令代码:14H指令功能:累加器内容减1操作内容:A←(A)-1

字节数:1机器周期:1

3、DEC Rn

指令名称:寄存器减1指令指令代码:18H~1FH

指令功能:寄存器内容减1

操作内容:Rn←(Rn)-1,n=0~7

字节数:1机器周期:1

4、DEC direct

指令名称:直接寻址减1指令指令代码:15H

指令功能:内部RAM低128单元及专用寄存器内容减1

操作内容:direct←(direct)-1

字节数:2机器周期:1

5、DEC@Ri

指令名称:间接寻址减1指令指令代码:16H~17H

指令功能:内部RAM低128单元内容减1

操作内容:(Ri)←((Ri))-1,i=0,1

字节数:1机器周期:1

6、DIV AB

指令名称:无符号数除法指令;指令代码:84H

指令功能:A的内容被B的内容除。指令执行后,商存于A中,余数存于B中。

操作内容:A←(A)/(B)的商B←(A)/(B)的余数

字节数:1机器周期:4

影响标志位:C被清0;若B=00H,除法无法进行,并使OV=1;否则OV=0。

7、DJNZ Rn,rel

指令名称:寄存器减1条件转移指令指令代码:D8H~DFH

指令功能:寄存器内容减1。不为0转移;为0顺序执行。

操作内容:Rn←(Rn)-l,n=0~7

若(Rn)≠0,则PC←(PC)+2+rel

若(Rn)=0,则PC←(PC)+2

字节数:2机器周期:2

8、DJNZ direct,rel

指令名称:直接寻址单元减1条件转移指令指令代码:D5H

指令功能:内部RAM低128单元内容减1。不为0转移;为0顺序执行。

操作内容:direct←(direct)-1

若(direct)≠0,则PC←(PC)+3+rel

若(direct)=0,则PC←(PC)+3

字节数:3机器周期:2

单片机指令以I开头的指令有5条,分别为:

1、INC A

指令名称:累加器加1指令指令代码:04H

指令功能:累加器内容加1

操作内容:A←(A)+1

字节数:1机器周期:1

2、INC Rn

指令名称:寄存器加1指令指令代码:08H~0FH指令功能:寄存器内容加1操作内容:Rn←(Rn)+1,n=0~7

字节数:1机器周期:1

3、INC direct

指令名称:直接寻址单元加1指令指令代码:05H

指令功能:内部BAM低128单元或专用寄存器内容加1

操作内容:direct←(direct)+1

字节数:2机器周期:1

4、INC@Ri

指令名称:间接寻址单元加1指令指令代码:06H~07H

指令功能:内部RAM低128单元内容加1

操作内容:(Ri)←((Ri))+1;i=0,l

字节数:1机器周期:1

5、INC DPTR

指令名称:16位数据指针加1指令指令代码:A3H

指令功能:数据指针寄存器DPTR内容加1

操作内容:DPTR←(DPTR)+1

字节数:1机器周期:2

单片机指令以J开头的指令有8条,分别为:

1、JB bit,rel

指令名称:位条件转移指令。指令代码:20H

指令功能:根据指定位的状态,决定程序是否转移。若为1则转移;否则顺序执行。

操作内容:若(bit)=1,则PC←(PC)+3+rel

若(bit)≠1,则PC←(PC)+3

字节数:3机器周期:2

2、JBC bit,rel

指令名称:位条件转移清0指令指令代码:10H

指令功能:对指定位的状态进行测试。若为1,则把该位清0并进行转移;否则程序顺序执行。操作内容:若(bit)=1,则PC←(PC)+3+rel,bit←0

若(bit)≠1,则PC←(PC)+3

字节数:3机器周期:2

3、JC rel

指令名称:累加位条件转移指令指令代码:40H

指令功能:根据累加位(C)的状态决定程序是否转移,若为1则转移,否则顺序执行。

操作内容:若(C)=1,则PC←(PC)+2+rel

若(C)≠1,则PC←(PC)+2

字节数:2机器周期:2

4、JMP@A+DPTR

指令名称:无条件间接转移指令指令代码:72H

指令功能:A内容与DPTR内容相加作为转移目的地址,进行程序转移。

操作内容:PC←(A)+(DPTR)

字节数:1机器周期;2

5、JNB bit,rel

指令名称:位条件转移指令指令代码:30H

指令功能:根据指定位的状态,决定程序是否转移。若为0则转移;否则顺序执行。

操作内容:若(bit)=0,则PC←(PC)+3+rel

若(bit)≠0,则PC←(PC)+3

字节数:3机器周期:2

6、JNC rel

指令名称:累加位条件转移指令指令代码:50H

指令功能:根据累加位(C)的状态决定程序是否转移。若为o则转移;否则顺序执行。操作内容:若(C)=0,则PC←(PC)+2+rel

若(C)≠0,则PC←(PC)+2

字节数:2机器周期:2

7、JNZ rel

指令名称:判0转移指令指令代码:70H

指令功能:累加位(A)的内容不为0,则程序转移;否则程序顺序执行。

操作内容:若(A)≠0,则PC←(PC)+2+rel

若(A)=0,则PC←(PC)+2

字节数:2机器周期:2

8、JZ rel

指令名称:判0转移指令指令代码:60H

指令功能:累加位(A)的内容为o,则程序转移;否则程序顺序执行。

操作内容:若(A)=0,则PC←(PC)+2+rel

若(A)≠0,则PC←(PC)+2

字节数:2机器周期:2

单片机指令以L开头的指令就2条,分别为:

1、LCALL addr16

指令名称:长调用指令指令代码:12H

指令功能:按指令给定地址进行子程序调用

操作内容:PC←(PC)+3SP←(SP)+1

(SP)←(PC)7~0SP←(SP)+1

(SP)←(PC)15~8PC←addrl6

字节数:3机器周期:2

使用说明:在64KB的范围内调用子程序

2、LJMP addrl6

指令名称:长转移指令指令代码:02H

指令功能:使程序按指定地址进行无条件转移

操作内容:PC←addrl6

字节数:3机器周期:2

单片机指令以M开头的指令有24条,分别为:

1、MOV A,Rn

指令名称:寄存器数据传送指令指令代码:E8H~EFH 指令功能:寄存器内容送累加器

操作内容:A←(Rn),n=0~7

字节数:1机器周期:1

2、MOV A,direct

指令名称:直接寻址数据传送指令指令代码:E5H 指令功能:内部RAM低126单元或专用寄存器内容送累加器操作内容:A←(direct)

字节数:2机器周期:1

3、MOV A,@Ri

指令名称:间接寻址数据传送指令指令代码:E6H~E7H 指令功能:内部RAM低128单元内容送累加器

操作内容:A←((Ri)),i=0,1

字节数:1机器周期:1

4、MOV A,#data

指令名称:立即数据传送指令指令代码:74H

指令功能:立即数送累加器

操作内容:A←data

字节数:2机器周期:1

5、MOV Rn,A

指令名称:累加器数据传送指令指令代码:F8H~FFH 指令功能:累加器内容送寄存器

操作内容:Rn←(A)

字节数:1机器周期:1

6、MOV Rn,direct

指令名称:直接寻址数据传送指令指令代码:A8H~AFH 指令功能:内部RAM低128单元或专用寄存器内容送累加器操作内容:Rn←(direct),n=0~7

字节数:2机器周期:2

7、MOV Rn,#data

指令名称:立即数据传送指令指令代码:78H~7FH 指令功能:立即数送寄存器

操作内容:Rn←data,n=0~7

字节数:2机器周期:1

8、MOV direct,A

指令名称:累加器数据传送指令指令代码:F5H

指令功能:累加器内容送内部RAM低128单元或专用寄存器

操作内容:direct←(A)

字节数:2机器周期:1

9、MOV direct,Rn

指令名称:寄存器数据传送指令指令代码:88H~8FH

指令功能:寄存器内容送内部RAM低128单元或专用寄存器

操作内容:direct←(Rn),n=0~7

字节数:2机器周期:2

10、MOV direct2,direct1

指令名称:直接寻址数据传送指令指令代码:85H

指令功能:内部RAM低123单元或专用寄存器之间的相互传送

操作内容:direct2←(direct1)

字节数:3机器周期:2

11、MOV direct,@Ri

指令名称:间接寻址数据传送指令指令代码:86H~87H

指令功能:内部RAM低128单元内容送内部RAM低128单元或专用寄存器操作内容:direct←((Ri)),i=0,1

字节数:2机器周期:2

12、MOV direct,#data

指令名称:立即数传送指令指令代码:75H

指令功能:立即数送内部RAM低128单元或专用寄存器

操作内容:direct←data

字节数:3机器周期:2

13、MOV@Ri,A

指令名称:累加器数据传送指令指令代码:F6H~F7H

指令功能:累加器内容送内部RAM低128单元

操作内容:(Ri)←(A),i=0,1

字节数:1机器周期:1

14、MOV@Ri,direct

指令名称:直接寻址数据传送指令指令代码:A6H~A7H

指令功能:内部RAM低128单元或专用寄存器内容送内部RAM低128单元操作内容:(Ri)←(direct),i=0,1

字节数:2机器周期:2

15、MOV@Ri,data

指令名称:立即数传送指令指令代码:76H~77H

指令功能:立即数送内部RAM低128单元

操作内容:(Ri)←data,i=0,1

字节数:2机器周期:1

16、MOV C,bit

指令名称:位数据传送指令指令代码:A2H

指令功能:内部RAM可寻址位或专用寄存器的位状态送累加位C

操作内容:C←(bit)

字节数:2机器周期:1

17、MOV bit,C

指令名称:累加位数据传送指令指令代码:92H

指令功能:累加器状态送内部RAM可寻址位或专用寄存器的指定位操作内容:bit←(C)

字节数:2机器周期:2

18、MOV DPTR,#datal6

指令名称:+六位数据传送指令指令代码:90H

指令功能:十六位立即数送数据指针

操作内容:DPH←datal5~8DPL←data7~0

字节数:3机器周期:2

19、MOVC A,@A+DPTR

指令名称:程序存储器读指令指令代码:93H

指令功能:读程序存储器单元内容送累加器

操作内容:A←((A)+(DPTR))

字节数:1机器周期:2

使用说明:变址寄存器A内容加基址寄存器DPTR内容时,低8位产生的进位直接加到高位,不影响进位标志。

20、MOVC A,@A+PC

指令名称:程序存储器读指令指令代码:83H

指令功能:读程序存储器单元内容送累加器

操作内容:A←((A)+(PC))

字节数:1机器周期:2

使用说明:同MOVC A,@A+DPTR指令(序号70)

21、MOVX A,@Ri

指令名称:寄存器间接寻址外部RAM读指令

指令代码:E2H~E3H

指令功能:读外部RAM低256单元数据送累加器

字节数:1机器周期:2

22、MOVX A,@DPTR

指令名称:数据指针间接寻址外部RAM读指令

指令代码:E0H

指令功能:读外部RAM单元数据送累加器

操作内容:A1←((DPTR))

字节数:1机器周期:2

23、MOVX@Ri,A

指令名称:寄存器间接寻址外部RAM写指令

指令代码:F2H~F3H

指令功能:把累加器内容写入外部RAM低256单元

操作内容:(Ri)←(A),i=1,0

字节数:1机器周期:2

24、MOVX@DPTR,A

指令名称:数据指针间接寻址外部RAM写指令

指令代码:F0H

指令功能:把累加器内容写入外部RAM单元

操作内容:(DPTR)←(A)

字节数:1机器周期:2

25、MUL AB

指令名称:乘法指令指令代码:A4H

指令功能:实现8位无符号数乘法运算.两个乘数分别放在累加器A和寄存器B中。乘积为16位,低8位在B中,高8位在A中

操作内容:AB←(A)×(B)

字节数:1机器周期:4

影响标志位:进位标志复位。若乘积大于255,则OV标志置位;否则复位。

MCS-51系列单片机指令以N开头的指令只有1条,是:

1、NOP

指令名称:空操作指令指令代码;00H

指令功能:不执行任何操作,常用于产生一个机器周期的时间延迟

操作内容:PC←(PC)+l

字节数:1机器周期:1

单片机指令以O开头的指令有8条,分别为:

1、ORL A,Rn

指令名称:逻辑或操作指令指令代码:48H~4FH

指令功能:累加器内容与寄存器内容进行逻辑或操作

操作内容:A1←(A)∨(Rn),n=0~7

字节数:1机器周期:1

2、ORL A,direct

指令名称:逻辑或操作指令指令代码:45H

操作内容:A←(A)∨(direct)

字节数:2机器周期:1

3、ORL A,@Ri

指令名称:逻辑或操作指令指令代码:46H~47H

指令功能:累加器内容与内部RAM低128单元内容进行逻辑或操作

操作内容:A←(A)∨((Ri));i=0,1

字节数:1机器周期:1

4、ORL A,#data

指令名称:逻辑或操作指令指令代码:44H

指令功能:累加器内容与立即数进行逻辑或操作

操作内容:A←(A)∨data

字节数:2机器周期:1

5、ORL direct,A

指令名称:逻辑或操作指令指令代码:42H

指令功能:内部RAM低128单元或专用寄存器内容与累加器内容进行逻辑或操作

操作内容:direct←(direct)∨(A)

字节数:2机器周期:1

6、ORL direct,#data

指令名称:逻辑或操作指令指令代码:43H

指令功能:内部RAM低128单元或专用寄存器内容与立即数进行逻辑或操作。

操作内容:direct←(direct)∨data

字节数:3机器周期:2

7、ORL C,bit

指令名称:位逻辑或操作指令指令代码:72H

指令功能:累加位C状态与内部RAM可寻址位或专用寄存器指定位进行逻辑或操作

操作内容:C←(C)∨(bit)

字节数:2机器周期:2

8、ORL C,/bit

指令名称:位反逻辑或操作指令指令代码:A0H

指令功能:累加位C状态与内部RAM可寻址位或专用寄存器指定位的反进行逻辑或操作操作内容:C←(C)∨(bit非)

字节数:2机器周期:2

使用说明:指定位的状态取反后进行逻辑或操作,但并不改变指定位的原来状态。

单片机指令以P开头的指令有2条,分别为:

1、POP direct

指令名称:出栈指令指令代码:D0H

指令功能:堆栈栈顶单元的内容送内部RAM低128单元或专用寄存器

操作内容:direct←(SP)SP←(SP)-1

字节数:2机器周期:2

2、PUSH direct

指令名称:进栈指令指令代码:C0

指令功能:内部RAM低128单元或专用寄存器内容送堆栈栈顶单元操作内容:SP←(SP)+1(SP)←(direct)

字节数:2机器周期:2

单片机指令以R开头的指令有6条,分别为:

1、RET

指令名称:子程序返回指令指令代码:22H

指令功能:子程序返回

操作内容:PC15~8←((SP))SP←(SP)-1

PC7~0←((SP))SP←(SP)-1

字节数:1机器周期:2

2、RETI

指令名称:中断返回指令指令代码:32H

指令功能:中断服务程序返回

操作内容’:PC15?/FONT>8←((SP))SP←(SP)-l

PC7~0←((SP))SP←(SP)-1

字节数:1机器周期:2

3、RL A

指令名称:循环左移指令指令代码:23H

指令功能:累加器内容循环左移一位

操作内容:An+1←(An);n=0~6A0←(A7)

字节数:1机器周期:1

4、RLC A

指令名称:带进位循环左移指令指令代码:33H

指令功能:累加器内容连同进位标志位循环左移一位

操作内容:An-1←(An);n=0~6A0←(C)

C←(A7)

字节数:1机器周期:1

5、RR A

指令名称:循环右移指令指令代码:03H

指令功能:累加器内容循环右移一位

操作内容:An←(An+1);n=0~6A7←(A0)

字节数:1机器周期:1

6、RRC A

指令名称:带进位循环右移指令指令代码:13H

指令功能:累加器内容连同进位标志位循环右移一位

操作内容:An←(An+1);n=0~6A7←(C)

C←(A0

字节数:1机器周期:1

单片机指令以S开头的指令有8条,分别为:

1、SETB c

指令名称:进位标志置位指令指令代码:D.H

指令功能:进位标志位置位

操作内容:C←1

字节数:1机器周期:1

2、SETB bit

指令名称:直接寻址位置位指令指令代码:D2H

指令功能:内部RAM可寻址位或专用寄存器指定位置位

操作内容:bit←1

字节数:2机器周期:1

3、SJMP rel

指令名称:短转移指令指令代码:80H

指令功能:按指令提供的偏移量计算转移的目的地址,实现程序的无条件相对转移;

操作内容:PC←(PC)+2PC←(PC)+rel

字节数:2机器周期:2

使用说明:偏移量是8位二进制补码数,可实现程序的双向转移,其转移范围是(PC一26)一(PC+129)。其中PC值为本指令的地址。

4、SUBB A,Rn

指令名称:寄存器寻址带进位减法指令指令代码:98H~9FH

指令功能:累加器内容减寄存器内容和进位标志位内容

操作内容:A←(A)-(Rn)-(C);n=0~7

字节数:1机器周期:1

影响标志位:当够减时,进位标志位复位;不够减时,进位标志置位。当位3发生借位,AC置位;否则AC复位。当位6及位7不同时发生借位时,OV置位;否则OV复位。

5、SUBB A,direct

指令名称:直接寻址带进位减法指令指令代码:95H

指令功能:累加器内容减内部RAM低128单元或专用寄存器和进位标志位内容

操作内容:A←(A)-(diret)-(C)

字节数:2机器周期:1

影响标志位:同SUBB A,Rn指令(序号97)

6、SUBB A,@Ri

指令名称:间接寻址带进位减法指令指令代码:96H~97H

指令功能:累加器内容减内部RAM低128单元内容及进位标志位内容操作内容:A←(A)-((Ri))-(C);i=0,1

字节数:1机器周期:1

影响标志位:同SUBB A,Rn指令(序号97)

7、SUBB A,#data

指令名称:立即数带进位减法指令指令代码:94H

指令功能:累加器内容减立即数及进位标志内容

操作内容:A←(A)-data-(C)

字节数:2机器周期:1

影响标志位:同SUBB A,Rn指令(序号97)

8、SWAP A

指令名称:累加器高低半字节交换指令指令代码:C4H

指令功能:累加器内容的高4位与低4位交换

操作内容:(A)7?/FONT>4交换(A)3?/FONT>0

字节数:1机器周期:1

单片机指令以X开头的指令有10条,分别为:

1、XCH A,Rn

指令名称:寄存器寻址字节交换指令指令代码:C8H~CFH

指令功能:寄存器寻址字节

操作内容:(A)交换(Rn);n=0~7

字节数:1机器周期:1

2、XCH A,direct

指令名称:直接寻址字节交换指令指令代码:C5H

指令功能:累加器内容与内部RAM低128单元或专用寄存器内容交换操作内容:(A)交换(direct)

字节数:2机器周期:1

3、XCH A,@Ri

指令名称:间接寻址字节交换指令指令代码:C6H~C7H

指令功能:累加器内容与内部RAM低128单元内容交换

操作内容:(A)交换((Ri));i=0,1

字节数:1机器周期:1

4、XCHD A,@Ri

指令名称:半字节交换指令指令代码:D6H~D7H

指令功能:累加器内容低4位与内部RAM低128单元低4位交换

操作内容:(A)3~0交换((Ri))3~0;i=0,1

字节数:1机器周期:1

5、XRL A,Rn

指令名称;逻辑异或操作指令指令代码:68H~6FH

指令功能:累加器内容与寄存器内容进行逻辑异或操作

操作内容:A←(A)异或(Rn);n=0~7

字节数:1机器周期:1

6、XRL A,direct

指令名称:逻辑异或操作指令指令代码:65H

指令功能:累加器内容与内部RAM低128单元或专用寄存器内容进行逻辑异或操作操作内容:A←(A)异或(direct)

字节数:2机器周期:1

7、XRL A,@Ri

指令名称:逻辑异或指令指令代码:66H~67H

指令功能:累加器与内部RAM低128单元内容进行逻辑异或操作

操作内容:A←(A)异或((Ri));i=0,1

字节数:1机器周期:1

8、XRL A,#data

指令名称:逻辑异或指令指令代码:64H

指令功能:累加器内容与立即数进行逻辑异或操作

操作内容:A1?/FONT>(A)异或data

字节数:2机器周期:1

9、XRL direct,A

指令名称:逻辑异或操作指令指令代码:62H

指令功能:累加器内容与内部RAM低128单元或专用寄存器内容进行逻辑异或操作操作内容:direct一(direct)异或(A)

字节数:2机器周期:1

10、XRL direct,#data

指令名称:逻辑异或操作指令指令代码:63H

指令功能:内部RAM低128单元或专用寄存器内容与立即数进行逻辑异或操作

操作内容:direct←(direct)异或data

字节数:3机器周期:2

单片机汇编语言查表实例

下面是汇编语言实现楼宇对讲功能的查表实例: 当单片机外部系统发来不同的指令时,便启动查表功能,实现不同的操作,如单片机接收到的指令保存在RXD中,RXD+1保存指令终止符号,如要实现某个操作,外部发来0XA0操作符到RXD中,0XFF到RXD+1中,即开启查表,开始执行下列程序: MOV A,(RXD_Buf+1) CJNE A,RXD_Buf,Exit_Receive_Msg_Proc如果为退出指令,则退出 MOV B,RXD_Buf JmpX_By_Ins Division_Instruction,Run_Instr_Addr子程序 ;================================== Division_Instruction: DB00H,01H,03H,05H,06H,07H,09H,0AH,13H,14H,15H,16H DB28H,29H,2AH,2CH,2EH,30H,31H,33H,35H,FAH;FLAG OF END ;================================== Run_Instr_Addr: LJMP Call_By_Manger;00H; LJMP Put_Down_Hook;01H; LJMP Put_Off_Hook;03H; LJMP Disable_Calling;05H; LJMP Enable_Get_Msg;06H; LJMP There_Are_Msg;07H; LJMP Call_By_Door;09H; LJMP FeedBack_Alarm;0AH LJMP Put_Off_Hook_For_Out;13H; LJMP Set_Up_Fortify_By_GLC;14H; LJMP Disable_Alarm_By_GLC;15H; LJMP Reset_Divi_Password;16H; LJMP Calling_By_T_Main;28H; LJMP Hook_On_By_Brother;29H; LJMP Hook_Off_By_Brother;2AH; LJMP Hook_On_By_T_Main;2CH; LJMP Calling_By_Brother;2EH; LJMP Define_Baud_Rate;30H LJMP GLC_Proced_Alarm;31H LJMP Graphic_Msg_In_Main;33H LJMP Rst_Standart_Rate;35H Return_Main_Body_For_Divi_Ins: LJMP Exit_Receive_Msg_Proc;FAH JmpX_By_Ins MACRO I_Table,F_Table MOV DPTR,#I_Table将指令表首地址赋给DPTR LCALL DPTR_Comp_B调用 MOV A,R05此时R05表示查找到的位置 MOV B,#03LJMP指令占三个字节 MUL AB

51单片机汇编指令集(附记忆方法)

51单片机汇编指令集 一、数据传送类指令(7种助记符) MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送; MOVC(Move Code)读取程序存储器数据表格的数据传送; MOVX (Move External RAM) 对外部RAM的数据传送; XCH (Exchange) 字节交换; XCHD (Exchange low-order Digit) 低半字节交换; PUSH (Push onto Stack) 入栈; POP (Pop from Stack) 出栈; 二、算术运算类指令(8种助记符) ADD(Addition) 加法; ADDC(Add with Carry) 带进位加法; SUBB(Subtract with Borrow) 带借位减法; DA(Decimal Adjust) 十进制调整; INC(Increment) 加1; DEC(Decrement) 减1; MUL(Multiplication、Multiply) 乘法; DIV(Division、Divide) 除法; 三、逻辑运算类指令(10种助记符) ANL(AND Logic) 逻辑与; ORL(OR Logic) 逻辑或; XRL(Exclusive-OR Logic) 逻辑异或; CLR(Clear) 清零; CPL(Complement) 取反; RL(Rotate left) 循环左移; RLC(Rotate Left throught the Carry flag) 带进位循环左移; RR(Rotate Right) 循环右移; RRC (Rotate Right throught the Carry flag) 带进位循环右移; SWAP (Swap) 低4位与高4位交换; 四、控制转移类指令(17种助记符) ACALL(Absolute subroutine Call)子程序绝对调用; LCALL(Long subroutine Call)子程序长调用; RET(Return from subroutine)子程序返回; RETI(Return from Interruption)中断返回; SJMP(Short Jump)短转移; AJMP(Absolute Jump)绝对转移; LJMP(Long Jump)长转移; CJNE (Compare Jump if Not Equal)比较不相等则转移;

51单片机汇编指令速查表

51单片机汇编指令速查表 指令格式功能简述字节数周期 一、数据传送类指令 MOV A, Rn 寄存器送累加器 1 1 MOV Rn,A 累加器送寄存器 1 1 MOV A ,@Ri 内部RAM单元送累加器 1 1 MOV @Ri ,A 累加器送内部RAM单元 1 1 MOV A ,#data 立即数送累加器 2 1 MOV A ,direct 直接寻址单元送累加器 2 1 MOV direct ,A 累加器送直接寻址单元 2 1 MOV Rn,#data 立即数送寄存器 2 1 MOV direct ,#data 立即数送直接寻址单元 3 2 MOV @Ri ,#data 立即数送内部RAM单元 2 1 MOV direct ,Rn 寄存器送直接寻址单元 2 2 MOV Rn ,direct 直接寻址单元送寄存器 2 2 MOV direct ,@Ri 内部RAM单元送直接寻址单元 2 2 MOV @Ri ,direct 直接寻址单元送内部RAM单元 2 2 MOV direct2,direct1 直接寻址单元送直接寻址单元 3 2 MOV DPTR ,#data16 16位立即数送数据指针 3 2 MOVX A ,@Ri 外部RAM单元送累加器(8位地址) 1 2 MOVX @Ri ,A 累加器送外部RAM单元(8位地址) 1 2 MOVX A ,@DPTR 外部RAM单元送累加器(16位地址) 1 2 MOVX @DPTR ,A 累加器送外部RAM单元(16位地址) 1 2 MOVC A ,@A+DPTR 查表数据送累加器(DPTR为基址) 1 2 MOVC A ,@A+PC 查表数据送累加器(PC为基址) 1 2 XCH A ,Rn 累加器与寄存器交换 1 1 XCH A ,@Ri 累加器与内部RAM单元交换 1 1 XCHD A ,direct 累加器与直接寻址单元交换 2 1 XCHD A ,@Ri 累加器与内部RAM单元低4位交换 1 1 SWAP A 累加器高4位与低4位交换 1 1 POP direct 栈顶弹出指令直接寻址单元 2 2 PUSH direct 直接寻址单元压入栈顶 2 2 二、算术运算类指令 ADD A, Rn 累加器加寄存器 1 1

单片机汇编指令大全

单片机汇编指令一览表 作者:乡下人 助记符指令说明字节数周期数 (数据传递类指令) MOV A,Rn 寄存器传送到累加器 1 1 MOV A,direct 直接地址传送到累加器 2 1 MOV A,@Ri 累加器传送到外部RAM(8 地址) 1 1 MOV A,#data 立即数传送到累加器 2 1 MOV Rn,A 累加器传送到寄存器 1 1 MOV Rn,direct 直接地址传送到寄存器 2 2 MOV Rn,#data 累加器传送到直接地址 2 1 MOV direct,Rn 寄存器传送到直接地址 2 1 MOV direct,direct 直接地址传送到直接地址 3 2 MOV direct,A 累加器传送到直接地址 2 1 MOV direct,@Ri 间接RAM 传送到直接地址 2 2 MOV direct,#data 立即数传送到直接地址 3 2 MOV @Ri,A 直接地址传送到直接地址 1 2 MOV @Ri,direct 直接地址传送到间接RAM 2 1 MOV @Ri,#data 立即数传送到间接RAM 2 2 MOV DPTR,#data16 16 位常数加载到数据指针 3 1 MOVC A,@A+DPTR 代码字节传送到累加器 1 2 MOVC A,@A+PC 代码字节传送到累加器 1 2 MOVX A,@Ri 外部RAM(8 地址)传送到累加器 1 2 MOVX A,@DPTR 外部RAM(16 地址)传送到累加器 1 2 MOVX @Ri,A 累加器传送到外部RAM(8 地址) 1 2 MOVX @DPTR,A 累加器传送到外部RAM(16 地址) 1 2 PUSH direct 直接地址压入堆栈 2 2 POP direct 直接地址弹出堆栈 2 2 XCH A,Rn 寄存器和累加器交换 1 1 XCH A, direct 直接地址和累加器交换 2 1 XCH A, @Ri 间接RAM 和累加器交换 1 1 XCHD A, @Ri 间接RAM 和累加器交换低4 位字节 1 1 (算术运算类指令) INC A 累加器加1 1 1 INC Rn 寄存器加1 1 1 INC direct 直接地址加1 2 1 INC @Ri 间接RAM 加1 1 1 INC DPTR 数据指针加1 1 2 DEC A 累加器减1 1 1 DEC Rn 寄存器减1 1 1 DEC direct 直接地址减1 2 2

51单片机指令表汇总

51单片机指令表 助记符指令说明字节数周期数 (数据传递类指令) MOV A,Rn 寄存器内容传送到累加器 1 1 MOV A,direct 直接地址内容传送到累加器 2 1 MOV A,@Ri 间接RAM内容传送到累加器 1 1 MOV A,#data 立即数传送到累加器 2 1 MOV Rn,A 累加器内容传送到寄存器 1 1 MOV Rn,direct 直接地址内容传送到寄存器 2 2 MOV Rn,#data 立即数传送到寄存器 2 1 MOV direct,Rn 寄存器内容传送到直接地址 2 2 MOV direct,direct 直接地址传内容传送到直接地址 3 2 MOV direct,A 累加器内容传送到直接地址 2 1 MOV direct,@Ri 间接RAM内容传送到直接地址 2 2 MOV direct,#data 立即数传送到直接地址 3 2 MOV @Ri,A 累加器内容传送到间接RAM 1 1 MOV @Ri,direct 直接地址内容传送到间接RAM 2 2 MOV @Ri,#data 立即数传送到间接RAM 2 1 MOV DPTR,#data16 16 位地址传送到数据指针 3 2 MOVC A,@A+DPTR 代码字节传送到累加器 1 2 MOVC A,@A+PC 代码字节传送到累加器 1 2 MOVX A,@Ri 外部RAM(8位地址)内容传送到累加器 1 2 MOVX A,@DPTR 外部RAM(16位地址)内容传送到累加器 1 2 MOVX @Ri,A 累加器内容传送到外部RAM(8位地址) 1 2 MOVX @DPTR,A 累加器内容传送到外部RAM(16 地址) 1 2 PUSH direct 直接地址内容压入堆栈 2 2 POP direct 堆栈内容弹出到直接地址 2 2 XCH A,Rn 寄存器和累加器交换 1 1 XCH A, direct 直接地址和累加器交换 2 1

MCS-51指令表

MCS-51单片机指令汇总表 助记符指令说明字节数周期数 (数据传递类指令) MOV A,Rn 寄存器传送到累加器 1 1 MOV A,direct 直接地址传送到累加器 2 1 MOV A,@Ri 累加器传送到外部RAM(8 地址) 1 1 MOV A,#data 立即数传送到累加器 2 1 MOV Rn,A 累加器传送到寄存器 1 1 MOV Rn,direct 直接地址传送到寄存器 2 2 MOV Rn,#data 累加器传送到直接地址 2 1 MOV direct,Rn 寄存器传送到直接地址 2 1 MOV direct,direct 直接地址传送到直接地址 3 2 MOV direct,A 累加器传送到直接地址 2 1 MOV direct,@Ri 间接RAM 传送到直接地址 2 2 MOV direct,#data 立即数传送到直接地址 3 2 MOV @Ri,A 直接地址传送到直接地址 1 2 MOV @Ri,direct 直接地址传送到间接RAM 2 1 MOV @Ri,#data 立即数传送到间接RAM 2 2 MOV DPTR,#data16 16 位常数加载到数据指针 3 1 MOVC A,@A+DPTR 代码字节传送到累加器 1 2 MOVC A,@A+PC 代码字节传送到累加器 1 2 MOVX A,@Ri 外部RAM(8 地址)传送到累加器 1 2 MOVX A,@DPTR 外部RAM(16 地址)传送到累加器 1 2 MOVX @Ri,A 累加器传送到外部RAM(8 地址) 1 2 MOVX @DPTR,A 累加器传送到外部RAM(16 地址) 1 2 PUSH direct 直接地址压入堆栈 2 2 POP direct 直接地址弹出堆栈 2 2 XCH A,Rn 寄存器和累加器交换 1 1 XCH A, direct 直接地址和累加器交换 2 1 XCH A, @Ri 间接RAM 和累加器交换 1 1 XCHD A, @Ri 间接RAM 和累加器交换低4 位字节 1 1 (算术运算类指令) INC A 累加器加1 1 1 INC Rn 寄存器加1 1 1 INC direct 直接地址加1 2 1 INC @Ri 间接RAM 加1 1 1 INC DPTR 数据指针加1 1 2 DEC A 累加器减1 1 1 DEC Rn 寄存器减1 1 1

单片机指令表(最全)

单片机指令以A开头的指令有18条,分别为: 1、ACALL addr11 指令名称:绝对调用指令 指令代码:A10 A9 A8 10001 A7 A6 A5 A4 A3 A2 A1 A0 指令功能:构造目的地址,进行子程序调用。其方法是以指令提供的11位地址(al0~a0),取代PC的低11位,PC的高5位不变。操作内容: PC←(PC)+2SP←(SP)+1 (SP)←(PC)7~0 SP←(SP)+1 (SP)←(PC)15~8 PC10~0←addrl0~0 字节数: 2 机器周期:2 使用说明:由于指令只给出子程序入口地址的低11位,因此调用范围是2KB。 2、ADD A,Rn 指令名称:寄存器加法指令指令代码:28H~2FH 指令功能:累加器内容与寄存器内容相加 操作内容:A←(A)+(Rn),n=0~7 字节数: 1 机器周期;1 影响标志位:C,AC,OV 3、ADD A,direct 指令名称:直接寻址加法指令指令代码:25H 指令功能:累加器内容与内部RAM单元或专用寄存器内容相加操作内容:A←(A)+(direct) 字节数: 2 机器周期:1 影响标志位:C,AC,OV 4、ADD A,@Ri ’ 指令名称:间接寻址加法指令指令代码:26H~27H 指令功能:累加器内容与内部RAM低128单元内容相加 操作内容:A←(A)+((Ri)),i=0,1 字节数: 1 机器周期:1 影响标志位:C,AC,OV 5、ADD A,#data 指令名称:立即数加法指令指令代码:24H 指令功能:累加器内容与立即数相加 操作内容:A←(A)+data 字节数: 2 机器周期:1 影响标志位:C,AC,OV 6、ADDC A,Rn 指令名称:寄存器带进位加法指令指令代码:38H~3FH 指令功能:累加器内容、寄存器内容和进位位相加 操作内容:A←(A)+(Rn)+(C),n=0~7 影响标志位:C,AC,OV 7、ADDC A,direct 指令名称:直接寻址带进位加法指令指令代码:35H 指令功能:累加器内容、内部RAM低128单元或专用寄存器内容与进位位加 操作内容:A←(A)+(direct)+(C) 字节数: 2 机器周期:1 影响标志位:C,AC,OV 8、ADDC A,@Ri 指令名称:间接寻址带进位加法指令指令代码:36H~37H 指令功能:累加器内容, 内部RAM低128单元内容及进位位相加操作内容:A←(A)+((Ri))+(C),i=0,1 字节数: 1 机器周期:1 影响标志位:C,AC,OV 9、ADDC A,#data 指令名称:立即数带进位加法指令指令代码:34H 指令功能:累加器内容、立即数及进位位相加 操作内容:A←(A)+data+(C) 字节数: 2 机器周期:1 影响标志位:C,AC,OV 10、AJMP addr11 指令名称:绝对转移指令 指令代码:A10 A9 A8 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0 指令功能:构造目的地址,实现程序转移。其方法是以指令提供的11位地址,取代PC的低11位,.而PC的高5位保持不变。操作内容:PC←(PC)+2PCl0~0←addrll 字节数: 2 机器周期:2 使用说明:由于addrll的最小值是000H,最大值是7FFH,因此地址转移范围是2KB。 11、ANL A,Rn 指令名称:寄存器逻辑与指令指令代码:58H~5FH 指令功能:累加器内容逻辑与寄存器内容 操作内容:A←(A)∧(Rn),n=0~7 字节数: 1 机器周期:1 12、ANL A,direct 指令名称:直接寻址逻辑与指令指令代码:55H 指令功能:累加器内容逻辑与内部RAM低128单元或专用寄存器内容 操作内容:A←(A)

51单片机指令表

此表主要是为了方便大家查阅每条指令的作用,写法以及字节数和周期数,建议大家保存为书签。 助记符指令说明字节数周期数 (数据传递类指令) MOV A,Rn 寄存器传送到累加器 1 1 MOV A,direct 直接地址传送到累加器 2 1 MOV A,@Ri 累加器传送到外部RAM(8 地址) 1 1 MOV A,#data 立即数传送到累加器 2 1 MOV Rn,A 累加器传送到寄存器 1 1 MOV Rn,direct 直接地址传送到寄存器 2 2 MOV Rn,#data 累加器传送到直接地址 2 1 MOV direct,Rn 寄存器传送到直接地址 2 1 MOV direct,direct 直接地址传送到直接地址 3 2 MOV direct,A 累加器传送到直接地址 2 1 MOV direct,@Ri 间接RAM 传送到直接地址 2 2 MOV direct,#data 立即数传送到直接地址 3 2 MOV @Ri,A 直接地址传送到直接地址 1 2 MOV @Ri,direct 直接地址传送到间接RAM 2 1 MOV @Ri,#data 立即数传送到间接RAM 2 2 MOV DPTR,#data16 16 位常数加载到数据指针 3 1 MOVC A,@A+DPTR 代码字节传送到累加器 1 2 MOVC A,@A+PC 代码字节传送到累加器 1 2 MOVX A,@Ri 外部RAM(8 地址)传送到累加器 1 2 MOVX A,@DPTR 外部RAM(16 地址)传送到累加器 1 2 MOVX @Ri,A 累加器传送到外部RAM(8 地址) 1 2 MOVX @DPTR,A 累加器传送到外部RAM(16 地址) 1 2 PUSH direct 直接地址压入堆栈 2 2 POP direct 直接地址弹出堆栈 2 2 XCH A,Rn 寄存器和累加器交换 1 1

(完整版)51单片机汇编指令(全)

指令中常用符号说明 Rn当前寄存器区的8个工作寄存器R0~R7(n=0~7) Ri当前寄存器区可作为地址寄存器的2个工作寄存器R0和R1(i=0,1) Direct8位内部数据寄存器单元的地址及特殊功能寄存器的地址 #data表示8位常数(立即数) #data16表示16位常数 Add16表示16位地址 Addr11表示11位地址 Rel8位代符号的地址偏移量 Bit表示位地址 @间接寻址寄存器或基址寄存器的前缀 ( )表示括号中单元的内容 (( ))表示间接寻址的内容 指令系统 数据传送指令(8个助记符) 助记符中英文注释 MOV Move 移动 MOV A , Rn;Rn→A,寄存器Rn的内容送到累加器A MOV A , Direct;(direct)→A,直接地址的内容送A MOV A ,@ Ri;(Ri)→A,RI间址的内容送A MOV A , #data;data→A,立即数送A MOV Rn , A;A→Rn,累加器A的内容送寄存器Rn MOV Rn ,direct;(direct)→Rn,直接地址中的内容送Rn MOV Rn , #data;data→Rn,立即数送Rn MOV direct , A;A→(direct),累加器A中的内容送直接地址中 MOV direct , Rn;(Rn)→direct,寄存器的内容送到直接地址 MOV direct , direct;(direct)→direct,直接地址的内容送到直接地址 MOV direct , @Ri;((Ri))→direct,间址的内容送到直接地址 MOV direct , #data;8位立即数送到直接地址中 MOV @Ri , A;(A)→@Ri,累加器的内容送到间址中 MOV @Ri , direct;direct→@Ri,直接地址中的内容送到间址中 MOV @Ri , #data; data→@Ri ,8位立即数送到间址中 MOV DPTR , #data16;data16→DPTR,16位常数送入数据指针寄存器,高8位送入DPH,低8位送入DPL中(单片机中唯一一条16位数据传送指令) (MOV类指令共16条)

单片机指令大全

一、数据传输指令 ─────────────────────────── ──────────── 在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVX 调用片外数据 MOVC调用片内数据. PUSH 把字压入堆栈. POP 把字弹出堆栈. SWAP 交换8位寄存器里字节的顺序 XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数) XLAT 字节查表转换. 2. 输入输出端口传送指令. IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} ) OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器) 输入输出端口由立即方式指定时, 其范围是0-255; 由寄存器DX 指定时, 其范围是0-65535. 二、算术运算指令 ─────────────────────────── ──────────── ADD 加法. ADC 带进位加法. INC 加1. DAA 加法的十进制调整. SUB 减法. SBB 带借位减法. DEC 减1. NEC 求反(以0 减之). CMP 比较.(两操作数作减法,仅修改标志位,不回送结果). AAS 减法的ASCII码调整. DAS 减法的十进制调整. MUL 无符号乘法. IMUL 整数乘法. 以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算), DIV 无符号除法. IDIV 整数除法. 三、逻辑运算指令 ─────────────────────────── ──────────── AND 与运算. or 或运算. XOR 异或运算. NOT 取反. ROL 循环左移. ROR 循环右移. RCL 通过进位的循环左移. RCR 通过进位的循环右移. 以上四种移位指令,其移位次数可达255次. 五、程序转移指令 ─────────────────────────────────────── 1>无条件转移指令(长转移) JMP 无条件转移指令 CALL 过程调用 RET/RETF过程返回. 2>条件转移指令(短转移,-128到+127的距离内) ( 当且仅当(SF XOR OF)=1时,OP1循环控制指令(短转移) LOOP CX不为零时循环. 4>中断指令 INT 中断指令 INTO 溢出中断 IRET 中断返回 5>处理器控制指令 NOP 空操作. 六、伪指令 END 程序结束.

常用51单片机汇编指令

常用单片机汇编指令: 1 .MOV A,Rn寄存器内容送入累加器 2 .MOV A,direct 直接地址单元中的数据送入累加器 3 .MOV A,@Ri (i=0,1) 间接RAM中的数据送入累加器 4 .MOV A,#data 立即数送入累加器 5 .MOV Rn,A累加器内容送入寄存器 6 .MOV Rn,direct 直接地址单元中的数据送入寄存器 7 .MOV Rn,#data 立即数送入寄存器 8 .MOV direct,A 累加器内容送入直接地址单元 9 .MOV direct,Rn 寄存器内容送入直接地址单元 10. MOV direct,direct 直接地址单元中的数据送入另一个 直接地址单元 11 .MOV direct,@Ri (i=0,1) 间接RAM中的数据送入直接地址单元 12 MOV direct,#data 立即数送入直接地址单元 13 .MOV @Ri,A (i=0,1) 累加器内容送间接RAM单元 14 .MOV@Ri,direct (i=0,1)直接地址单元数据送入间接RAM 单元 15 .MOV @Ri,#data (i=0,1) 立即数送入间接RAM单元 16 .MOV DPTR,#data16 16 位立即数送入地址寄存器 17 .MOVC A,@A+DPTR以DPTR^基地址变址寻址单元中的数 据送入累加器

18 .MOVC A,@A+PC以PC为基地址变址寻址单元中的数据送入累加器 19 .MOVX A,@Ri (i=0,1) 外部RAM(8位地址)送入累加器 20 .MOVX A,@DPTR外部RAM(16位地址)送入累加器 21 .MOVX @Ri,A (i=0,1) 累计器送外部RAM(8位地址) 22 .MOVX @DPTR,A累计器送外部RAM( 16位地址) 23 .PUSH direct 直接地址单元中的数据压入堆栈 24 .POP direct 弹栈送直接地址单元 25 .XCH A,Rn 寄存器与累加器交换 26 .XCH A,direct 直接地址单元与累加器交换 27 .XCH A,@Ri (i=0,1) 间接RAM与累加器交换 28 .XCHD A,@Ri (i=0,1) 间接RAM的低半字节与累加器交换算术操作类指令: 1. ADD A,Rn 寄存器内容加到累加器 2 .ADD A,direct 直接地址单元的内容加到累加器 3 A.DD A,@Ri (i=0,1) 间接ROM的内容加到累加器 4 .ADD A,#data 立即数加到累加器 5 .ADDC A,Rn寄存器内容带进位加到累加器 6 .ADDC A,direct 直接地址单元的内容带进位加到累加器 7 .ADDC A,@Ri(i=0,1) 间接ROM的内容带进位加到累加器 8 .ADDC A,#data 立即数带进位加到累加器

单片机指令表(最全)

. ;.. 单片机指令以A 开头的指令有18条,分别为: 1、ACALL addr11 指令名称:绝对调用指令 指令代码:A10 A9 A8 10001 A7 A6 A5 A4 A3 A2 A1 A0 指令功能:构造目的地址,进行子程序调用。其方法是以指令提供的11位地址(al0~a0),取代PC 的低11位,PC 的高5位不变。 操作内容: PC←(PC)+2 SP←(SP)+1 (SP)←(PC)7~0 SP←(SP)+1 (SP)←(PC)15~8 PC10~0←addrl0~0 字节数: 2 机器周期:2 使用说明:由于指令只给出子程序入口地址的低11位,因此调用 范围是2KB 。 2、ADD A ,Rn 指令名称:寄存器加法指令 指令代码:28H ~2FH 指令功能:累加器内容与寄存器内容相加 操作内容:A←(A)+(Rn), n =0~7 字节数: 1 机器周期;1 影响标志位:C ,AC ,OV 3、ADD A ,direct 指令名称:直接寻址加法指令 指令代码:25H 指令功能:累加器内容与内部RAM 单元或专用寄存器内容相加 操作内容:A←(A)+(direct) 字节数: 2 机器周期:1 影响标志位:C ,AC ,OV 4、ADD A ,@Ri ’ 指令名称:间接寻址加法指令 指令代码:26H ~27H 指令功能:累加器内容与内部RAM 低128单元内容相加 操作内容:A←(A)+((Ri)), i =0,1 字节数: 1 机器周期:1 影响标志位:C ,AC ,OV 5、ADD A ,#data 指令名称:立即数加法指令 指令代码:24H 指令功能:累加器内容与立即数相加 操作内容:A←(A)+data 字节数: 2 机器周期:1 影响标志位:C ,AC ,OV 6、ADDC A ,Rn 指令名称:寄存器带进位加法指令 指令代码:38H ~3FH 指令功能:累加器内容、寄存器内容和进位位相加 操作内容:A←(A)+(Rn)+(C), n =0~7 字节数: 1 机器周期:1 影响标志位:C ,AC ,OV 7、ADDC A ,direct 指令名称:直接寻址带进位加法指令 指令代码:35H 指令功能:累加器内容、内部RAM 低128单元或专用寄存器内 容与进位位加 操作内容:A←(A)+(direct)+(C) 字节数: 2 机器周期:1 影响标志位:C ,AC ,OV 8、ADDC A ,@Ri 指令名称:间接寻址带进位加法指令 指令代码:36H ~37H 指令功能:累加器内容, 内部RAM 低128单元内容及进位位相加 操作内容:A←(A)+((Ri))+(C), i =0,1 字节数: 1 机器周期:1 影响标志位:C ,AC ,OV 9、ADDC A ,#data 指令名称:立即数带进位加法指令 指令代码:34H 指令功能:累加器内容、立即数及进位位相加 操作内容:A←(A)+data+(C) 字节数: 2 机器周期:1 影响标志位:C ,AC ,OV 10、AJMP addr11 指令名称:绝对转移指令 指令代码:A10 A9 A8 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0 指令功能:构造目的地址,实现程序转移。其方法是以指令提供的11位地址,取代PC 的低11位,.而PC 的高5位保持不变。 操作内容:PC←(PC)+2 PCl0~0←addrll 字节数: 2 机器周期:2 使用说明:由于addrll 的最小值是000H ,最大值是7FFH ,因此地址转移范围是2KB 。 11、ANL A ,Rn 指令名称:寄存器逻辑与指令 指令代码:58H ~5FH 指令功能:累加器内容逻辑与寄存器内容 操作内容:A←(A)∧(Rn), n =0~7 字节数: 1 机器周期:1 12、ANL A ,direct 指令名称:直接寻址逻辑与指令 指令代码:55H 指令功能:累加器内容逻辑与内部RAM 低128单元或专用寄存 器内容 操作内容:A←(A)∧(diret) 字节数: 2 机器周期:1

单片机汇编语言指令查表

目录 表1 寻址方式与相应的寻址空间 (2) 1.1数据传送指令MOV (2) 1.2程序存储器取数据指令MOVX,MOVC (3) 1.3 数据交换指令XCH,XCHD,SWAP (3) 1.4 逻辑运算指令ANL,ORL(按位进行) (4) 续表1.4 逻辑运算指令XRL CLR CPL RL RLC RR RRC(按位进行) (5) 1.5 控制转移指令LJMP AJMP SJMP JMP JZ JNZ CJNE (6) 续表1.5 控制转移指令DJNZ LCALL ACALL RET RETI NOP (7) 1.6 布尔处理(位操作)指令CLR SETB CPL ANL ORL (8) 续表1.6 布尔处理(位操作)指令JC JNC JB JNB JBC (9) 1.7堆栈操作指令PUSH POP (10) 2.MCS-51系列单片机算术运算指令表ADD ADDC SUBB INC DEC MUL DIV DA (10)

表1 寻址方式与相应的寻址空间 1.1数据传送指令MOV 方式 利用的变量 使用的空间 寄存器 R0∽R7,A ,B ,CY ,DPTR 直接寻址 direct 片内RAM 低128字节特殊功能寄存器SFR 寄存器间址 @Ro ,@R1 SP @R0,@R1,@DPTR 片内RAM 片外RAM 立即数 #data 程序存储器 基址加变址 @A+PC @A+DPTR 程序存储器 相对寻址 PC+rel 程序存储器 位寻址 bit 片内RAM 的20H ∽2FH 部分SFR 目的操作数 汇编指令 机器码 功能 字节数 机器 周期 A 累加器 立即数送A MOV A ,#data 74H data data 传至A 2 1 内部RAM 或SFR 内容送A MOV A ,direct E5H direct (direct)传至A 2 1 寄存器内容送A MOV A ,Rn (n=0∽7) E8H ∽EFH 11101rrr (Rn)传至A 1 1 内部RAM 内容送A MOV A ,@Ri (i=0,1) 1110011i ((Ri))传至A 1 1 Direct 内部RAM 或SFR 立即数送内部RAM 或SFR MOV direct ,#data 75H direct data data 传至direct 3 2 内部RAM 和SFR 直接直接传送 MOV direct ,direct 85H direct direct (direct)传至direct 3 2 累加器内容送内部RAM 或SFR MOV direct ,A F5H direct (A)传至direct 2 1 寄存器内容送内部RAM 或SFR MOV direct ,Rn (n=0∽7) 10001rrr direct (Rn)传至direct 2 2 内部RAM 内容送内部RAM 或SFR MOV direct ,@Ri (i=0,1) 1000011i direct ((Ri))传至direct 2 2 Rn 寄存器 立即数送寄存器 MOV Rn,#data (n=0∽7) 01111rrr data data 传至Rn 2 1 内部RAM 或SFR 内容送寄存器 MOV Rn,direct (n=0∽7) 10101rrr direct (direct)传至Rn 2 2 累加器内容送寄存器 MOV Rn,A (n=0∽7) 11111rrr (A)传至Rn 1 2 @Ri 内部RAM 立即数送内部RAM MOV @Ri,#data (i=0,1) 0111011i data data 传至(Ri) 2 1 内部RAM 或SFR 内容送内部RAM MOV @Ri,direct (i=0,1) 1010011i direct (direct)传至(Ri) 2 2 累加器内容送内部RAM MOV @Ri,A (i=0,1) 1111011i (A)传至(Ri) 1 1 DPTR 16位立即数传送指令 MOV DPTR,#data16 90H dataH dataL data16传至DPTR 3 2

51单片机汇编指令集

1)数据传送类指令(7种助记符) MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送; MOVC(Move Code)读取程序存储器数据表格的数据传送; MOVX (Move External RAM) 对外部RAM的数据传送; XCH (Exchange) 字节交换; XCHD (Exchange low-order Digit) 低半字节交换; PUSH (Push onto Stack) 入栈; POP (Pop from Stack) 出栈; (2)算术运算类指令(8种助记符) ADD(Addition) 加法; ADDC(Add with Carry) 带进位加法; SUBB(Subtract with Borrow) 带借位减法; DA(Decimal Adjust) 十进制调整; INC(Increment) 加1; DEC(Decrement) 减1; MUL(Multiplication、Multiply) 乘法; DIV(Division、Divide) 除法; (3)逻辑运算类指令(10种助记符) ANL(AND Logic) 逻辑与; ORL(OR Logic) 逻辑或; XRL(Exclusive-OR Logic) 逻辑异或; CLR(Clear) 清零; CPL(Complement) 取反; RL(Rotate left) 循环左移; RLC(Rotate Left throught the Carry flag) 带进位循环左移; RR(Rotate Right) 循环右移; RRC (Rotate Right throught the Carry flag) 带进位循环右移; SWAP (Swap) 低4位与高4位交换; (4)控制转移类指令(17种助记符) ACALL(Absolute subroutine Call)子程序绝对调用; LCALL(Long subroutine Call)子程序长调用; RET(Return from subroutine)子程序返回; RETI(Return from Interruption)中断返回; SJMP(Short Jump)短转移; AJMP(Absolute Jump)绝对转移; LJMP(Long Jump)长转移; CJNE (Compare Jump if Not Equal)比较不相等则转移; DJNZ (Decrement Jump if Not Zero)减1后不为0则转移; JZ (Jump if Zero)结果为0则转移; JNZ (Jump if Not Zero) 结果不为0则转移;

MCS-51系列单片机指令表

MCS-51系列单片机指令A表 MCS-51系列单片机指令以A开头的指令有18条,分别为: 1、ACALL addr11 指令名称:绝对调用指令 指令代码: 指令功能:构造目的地址,进行子程序调用。其方法是以指令提供的11位地址(al0~a0), 取代PC的低11位,PC的高5位不变。 操作内容: PC←(PC)+2 SP←(SP)+1 (SP)←(PC)7~0 SP←(SP)+1 (SP)←(PC)15~8 PC10~0←addr l0~0 字节数: 2 机器周期:2

使用说明:由于指令只给出子程序入口地址的低11位,因此调用范围是2KB。 2、ADD A,Rn 指令名称:寄存器加法指令 指令代码:28H~2FH 指令功能:累加器内容与寄存器内容相加 操作内容:A←(A)+(Rn), n=0~7 字节数: 1 机器周期;1 影响标志位:C,AC,OV 3、ADD A,direct 指令名称:直接寻址加法指令 指令代码:25H 指令功能:累加器内容与内部RAM单元或专用寄存器内容相加 操作内容:A←(A)+(direct) 字节数: 2 机器周期:1 影响标志位:C,AC,OV 4、ADD A,@Ri ’ 指令名称:间接寻址加法指令 指令代码:26H~27H 指令功能:累加器内容与内部RAM低128单元内容相加 操作内容:A←(A)+((Ri)), i=0,1 字节数: 1 机器周期:1

5、ADD A,#data 指令名称:立即数加法指令 指令代码:24H 指令功能:累加器内容与立即数相加 操作内容:A←(A)+data 字节数: 2 机器周期:1 影响标志位:C,AC,OV 6、ADDC A,Rn 指令名称:寄存器带进位加法指令 指令代码:38H~3FH 指令功能:累加器内容、寄存器内容和进位位相加 操作内容:A←(A)+(Rn)+(C), n=0~7 字节数: 1 机器周期:1 影响标志位:C,AC,OV 7、ADDC A,direct 指令名称:直接寻址带进位加法指令 指令代码:35H 指令功能:累加器内容、内部RAM低128单元或专用寄存器内容与进位位加操作内容:A←(A)+(direct)+(C) 字节数: 2 机器周期:1

51单片机指令集

51单片机指令集.txt我这辈子只有两件事不会:这也不会,那也不会。人家有的是背景,而我有的是背影。肉的理想,白菜的命。肉的理想,白菜的命。白马啊你死去哪了!是不是你把王子弄丢了不敢来见我了。MCS-51单片机的指令集 1、数据传送类指令 助记符功能说明字节数振荡周期 MOV A,Rn 寄存器内容送入累加器 1 12 MOV A,direct 直接地址单元中的数据送入累加器 2 12 MOV A,@Ri 间接RAM中的数据送入累加器 1 12 MOV A,#data8 8位立即数送入累加器 2 12 MOV Rn,A 累加器内容送入寄存器 1 12 MOV Rn,direct 直接地址单元中的数据送入寄存器 2 24 MOV Rn,#data8 8位立即数送入寄存器 2 12 MOV direct,A 累加器内容送入直接地址单元 2 12 MOV direct,Rn 寄存器内容送入直接地址单元 2 24 MOV direct,direct 直接地址单元中的数据送入直接地址单元 3 24 MOV direct,@Ri 间接RAM中的数据送入直接地址单元 2 24 MOV direct,#data8 8位立即数送入直接地址单元 3 24 MOV @Ri,A 累加器内容送入间接RAM单元 1 12 MOV @Ri,direct 直接地址单元中的数据送入间接RAM单元 2 24 MOV @Ri,#data8 8位立即数送入间接RAM单元 2 12 MOV DPTR,#data16 16位立即数地址送入地址寄存器 3 24 MOV A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器 1 24 MOV A,@A+PC 以PC为基地址变址寻址单元中的数据送入累加器 1 24 MOV A,@Ri 外部RAM(8位地址)送入累加器 1 24 MOV A,@DPTR 外部RAM(16位地址)送入累加器 1 24 MOV @Ri,A 累加器送入外部RAM(8位地址) 1 24 MOV @DPTR,A 累加器送入外部RAM(16位地址) 1 24 PUSH direct 直接地址单元中的数据压入堆栈 2 24 POP DIRECT 堆栈中的数据弹出到直接地址单元 2 24 XCH A,Rn 寄存器与累加器交换 1 12 XCH A,direct 直接地址单元与累加器交换 2 12 XCH A,@Ri 间接RAM与累加器交换 1 12 XCHD A,@Ri 间接RAM与累加器进行低半字节交换 1 12 2、算术操作类指令 助记符功能说明字节数振荡周期 ADD A,Rn 寄存器内容加到累加器 1 12 ADD A,direct 直接地址单元加到累加器 2 12 ADD A,@Ri 间接RAM内容加到累加器 1 12 ADD A,#data8 8位立即数加到累加器 2 12 ADDC A,Rn 寄存器内容带进位加到累加器 1 12

相关主题
文本预览
相关文档 最新文档