51单片机汇编语言指令汇总

本文以AT89C51为例,列举51单片机汇编语言指令集。
AT89C51单片机的汇编指令共有111条,可按功能分为5大类:

数据传送类指令28条;
算数操作类指令24条;
逻辑运算类指令25条;
控制转移类17条;
位操作类17条。

在此约定下列指令中各符号的意义:

Rn:当前寄存器区的8个工作寄存器(n=0~7)
Ri:当前寄存器区中可作间接寻址寄存器的2个寄存器(i=0 1)
Direct:直接地址
#data:包含在指令中的8位立即数
rel:相对转移指令中的偏移量,为8位带符号补码数
DPTR:数据指针,16位数据地址寄存器
bit:直接寻址位
C:进位标志位
addr11:11位目的地址
addr16:16位目的地址
@:间接寻址寄存器前缀

一、数据传送类指令

1.以累加器为目的操作数指令

MOV A,Rn
MOV A,@Ri
MOV A,direct
MOV A,#data

2.以Rn为目的操作数的指令

MOV Rn,A
MOV Rn,direct
MOV Rn,#data

3.以直接地址为目的操作数指令

MOV direct,A
MOV direct,Rn
MOV direct1,direct2
MOV direct,@Ri
MOV direct,#data

4.以寄存器间接地址为目的操作数指令

MOV @Ri,A
MOV @Ri,direct
MOV @Ri,#data

5.16位传送指令

MOV DPTR,#data16

6.堆栈操作指令

进栈:PUSH direct
出栈:POP direct

7.累加器A与外部数据存储器传送指令

MOVX A,@DPTR
MOVX A,@Ri
MOVX @DPTR,A
MOVX @Ri,A

8.查表指令

MOVC A,@A+PC
MOVC A,@A+DPTR

9.字节交换命令

XCH A,Rn
XCH A,direct
XCH A,@Ri

10.半字节交换指令

XCHD @Ri

二、算数操作类指令

1.加法指令

ADD A,Rn
ADD A,direct
ADD A,@Ri
ADD A,#data

2.带进位加法指令

ADDC A,Rn
ADDC A,direct
ADDC A,@Ri
ADDC A,#data

3.增1指令

INC A
INC Rn
INC direct
INC @Ri
INC DPTR

4.十进制调整指令

DA A

5.带借位减法

SUBB A,Rn
SUBB A,direct
SUBB A,@Ri
SUBB A,#data

6.减1指令

DEC A
DEC Rn
DEC direct
DEC @Ri

7.乘法指令

MUL AB

8.除法指令

DIV AB

三、逻辑操作类指令

1.简单逻辑操作指令

累加器A清零:
CLR A
累加器A按位取反:
CPL A

2.左循环指令

RL A

3.带进位左移指令

RLC A

4.右移指令

RR A

5.带进位循环指令

RRC A

6.累加器半字节交换指令

SWAP A

7.逻辑与指令

ANL A,Rn
ANL A,direct
ANL A,#data
ANL A,@Ri
ANL direct,A
ANL direct,#data

7.逻辑或指令

ORL A,Rn
ORL A,direct
ORL A,#data
ORL A,@Ri
ORL direct,A
ORL direct,#data

7.逻辑异或指令

XRL A,Rn
XRL A,direct
XRL A,#data
XRL A,@Ri
XRL direct,A
XRL direct,#data

四、控制转移类指令

1.无条件转移指令

AJMP addr11

2.相对转移指令

SJMP rel

3.长跳转指令

LJMP addr16

4.间接跳转指令

JMP @A+DPTR

5.条件转移指令

若累加器为0则转移:
JZ rel
若累加器非0则转移:
JNZ rel

6.比较不相等转移指令

CJNE A,direct,rel
CJNE A,#data,rel
CJNE Rn,#data,rel
CJNE @Ri,#data,rel

7.减1不为0转移指令

DJNZ Rn,rel
DJNZ direct,rel

8.调用子程序指令

ACALL addr11
LCALL addr16

9.子程序返回指令

RET

10.中断返回指令

RETI

11.空操作指令

NOP

五、位操作指令

1.数据位传送指令

MOV C,bit
MOV bit,C

2.位变量修改指令

清0:
CLR C
CLR bit
求反:
CPL C
CPL bit
置1:
SETB C
SETB bit

3.位变量逻辑与指令

ANL C,bit
ANL C,/bit

3.位变量逻辑或指令

ORL C,bit
ORL C,/bit

4.条件转移类指令

JC rel
JNC rel
JB bit,rel
JNB bit,rel
JBC bit,rel

你可能感兴趣的:(单片机技术整理)