MCS 51 指令速查表


MCS 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

ADD    A, @Ri

累加器加内部RAM单元

1

1

ADD    A, direct

累加器加直接寻址单元

2

1

ADD    A, #data

累加器加立即数

2

1

ADDC   A, Rn

累加器加寄存器和进位标志

1

1

ADDC   A, @Ri

累加器加内部RAM单元和进位标志

1

1

ADDC   A, #data

累加器加立即数和进位标志

2

1

ADDC   A, direct

累加器加直接寻址单元和进位标志

2

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

DA     A

十进制调整

1

1

SUBB   A, Rn

累加器减寄存器和进位标志

1

1

SUBB   A, @Ri

累加器减内部RAM单元和进位标志

1

1

SUBB   A, #data

累加器减立即数和进位标志

2

1

SUBB   A, direct

累加器减直接寻址单元和进位标志

2

1

DEC    A

累加器减1

1

1

DEC    Rn

寄存器减1

1

1

DEC    @Ri

内部RAM单元减1

1

1

DEC    direct

直接寻址单元减1

2

1

MUL    AB

累加器乘寄存器B

1

4

DIV    AB

累加器除以寄存器B

1

4

逻 辑 运 算 类 指 令

ANL    A, Rn

累加器与寄存器

1

1

ANL    A, @Ri

累加器与内部RAM单元

1

1

ANL    A, #data

累加器与立即数

2

1

ANL    A, direct

累加器与直接寻址单元

2

1

ANL    direct, A

直接寻址单元与累加器

2

1

ANL    direct, #data

直接寻址单元与立即数

3

1

ORL    A, Rn

累加器或寄存器

1

1

ORL    A,@Ri

累加器或内部RAM单元

1

1

ORL    A,#data

累加器或立即数

2

1

ORL    A,direct

累加器或直接寻址单元

2

1

ORL    direct, A

直接寻址单元或累加器

2

1

ORL    direct, #data

直接寻址单元或立即数

3

1

XRL    A, Rn

累加器异或寄存器

1

1

XRL    A,@Ri

累加器异或内部RAM单元

1

1

XRL    A,#data

累加器异或立即数

2

1

XRL    A,direct

累加器异或直接寻址单元

2

1

XRL    direct, A

直接寻址单元异或累加器

2

1

XRL    direct, #data

直接寻址单元异或立即数

3

2

RL     A

累加器左循环移位

1

1

RLC    A

累加器连进位标志左循环移位

1

1

RR     A

累加器右循环移位

1

1

RRC    A

累加器连进位标志右循环移位

1

1

CPL    A

累加器取反

1

1

CLR    A

累加器清零

1

1

控 制 转 移 类 指 令

ACCALL addr11

2KB范围内绝对调用

2

2

AJMP   addr11

2KB范围内绝对转移

2

2

LCALL  addr16

2KB范围内长调用

3

2

LJMP   addr16

2KB范围内长转移

3

2

SJMP   rel

相对短转移

2

2

JMP    @A+DPTR

相对长转移

1

2

RET

子程序返回

1

2

RET1

中断返回

1

2

JZ     rel

累加器为零转移

2

2

JNZ    rel

累加器非零转移

2

2

CJNE   A ,#data ,rel

累加器与立即数不等转移

3

2

CJNE   A ,direct ,rel

累加器与直接寻址单元不等转移

3

2

CJNE   Rn,#data ,rel

寄存器与立即数不等转移

3

2

CJNE   @Ri ,#data ,rel

RAM单元与立即数不等转移

3

2

DJNZ   Rn ,rel

寄存器减1不为零转移

2

2

DJNZ   direct  ,rel

直接寻址单元减1不为零转移

3

2

布 尔 操 作 类 指 令

NOP

空操作

1

1

MOV    C, bit

直接寻址位送C

2

1

MOV    bit, C

C送直接寻址位

2

1

CLR    C

C清零

1

1

CLR    bit

直接寻址位清零

2

1

CPL    C

C取反

1

1

CPL    bit

直接寻址位取反

2

1

SETB   C

C置位

1

1

SETB   bit

直接寻址位置位

2

1

ANL    C, bit

C逻辑与直接寻址位

2

2

ANL    C, /bit

C逻辑与直接寻址位的反

2

2

ORL    C, bit

C逻辑或直接寻址位

2

2

ORL    C, /bit

C逻辑或直接寻址位的反

2

2

JC     rel

C为1转移

2

2

JNC    rel

C为零转移

2

2

JB     bit,rel

直接寻址位为1转移

3

2

JNB    bit,rel

直接寻址为0转移

3

2

JBC    bit,rel

直接寻址位为1转移并清该位

3

2