资源描述
MCS-51 指令表
类
别
指令
代码
指令格式
功能简述
字节数
周期
数
据
传
送
类
指
令
期
74 __
MOV A ,#data
立即数送累加器
2
1
E8~EF
MOV A, Rn
工作寄存器送累加器
1
1
E5 __
MOV A ,direct
直接寻址片内单元(含SFR)送累加器
2
1
E6~E7
MOV A ,@Ri
间接寻址片内RAM单元送累加器
1
1
F8~FF
MOV Rn,A
累加器送工作寄存器
1
1
78~7F __
MOV Rn,#data
立即数送工作寄存器
2
1
A8~AF
MOV Rn ,direct
直接寻址片内单元送工作寄存器
2
2
F5 __
MOV direct ,A
累加器送直接寻址片内单元
2
1
88~8F __
MOV direct ,Rn
寄存器送直接寻址片内单元
2
2
75 __ __
MOV direct ,#data
立即数送直接寻址片内单元
3
2
86~87 __
MOV direct ,@Ri
内部RAM单元送直接寻址片内单元
2
2
85 d2 d1
MOV direct1,direct2
直接寻址片内单元2送片内单元1
3
2
F6~F7
MOV @Ri ,A
累加器送间接寻址片内RAM单元
1
1
76~77
MOV @Ri ,#data
立即数送间接寻址片内RAM单元
2
1
A6~A7
MOV @Ri ,direct
直接寻址单元送间址片内RAM单元
2
2
90 __ __
MOV DPTR ,#data16
16位立即数送数据指针
3
2
E2~E3
MOVX A ,@Ri
外部RAM单元送累加器(8位地址)
1
2
F2~F3
MOVX @Ri ,A
累加器送外部RAM单元(8位地址)
1
2
E0
MOVX A ,@DPTR
外部RAM单元送累加器(16位址)
1
2
F0
MOVX @DPTR ,A
累加器送外部RAM单元(16位址)
1
2
93
MOVC A ,@A+DPTR
查表数据送累加器(DPTR为基址)
1
2
83
MOVC A ,@A+PC
查表数据送累加器(当前PC值为基址)
1
2
C8~CF
XCH A ,Rn
累加器与工作寄存器交换
1
1
C6~C7
XCH A ,@Ri
累加器与间接寻址片内RAM单元交换
1
1
C5 __
XCH A ,direct
累加器与直接寻址片内单元交换
2
1
D6~D7
XCHD A ,@Ri
累加器与间址片内RAM单元低4位交换
1
1
C4
SWAP A
累加器高4位与低4位交换
1
1
C0 __
PUSH direct
直接寻址片内单元内容压入栈顶
SP←SP+1,(SP)←(direct)
2
2
D0 __
POP direct
弹出栈顶单元数据送直接寻址片内单元
(direct)←(SP),SP←SP-1
2
2
算
术
运
算
类
指
令
28~2F
ADD A, Rn
累加器加工作寄存器
1
1
26~27
ADD A, @Ri
累加器加间址片内RAM单元
1
1
25 __
ADD A, direct
累加器加直接寻址片内单元
2
1
24 __
ADD A, #data
累加器加立即数
2
1
38~3F
ADDC A, Rn
累加器加工作寄存器和进位标志
1
1
36~37
ADDC A, @Ri
累加器加间址片内RAM单元和进位标志
1
1
34 __
ADDC A, #data
累加器加立即数和进位标志
2
1
35 __
ADDC A, direct
累加器加直接寻址片内单元和进位标志
2
1
98~9F
SUBB A, Rn
累加器减工作寄存器和进位标志
1
1
96~97
SUBB A, @Ri
累加器减间址片内RAM单元和进位标志
1
1
94 __
SUBB A, #data
累加器减立即数和进位标志
2
1
95 __
SUBB A, direct
累加器减直接寻址片内单元和进位标志
2
1
04
INC A
累加器加1
1
1
08~0F
INC Rn
工作寄存器加1
1
1
05 __
INC direct
直接寻址片内单元加1
2
1
06~07
INC @Ri
间址片内RAM单元加1
1
1
A3
INC DPTR
数据指针加1
1
2
14
DEC A
累加器减1
1
1
18~1F
DEC Rn
工作寄存器减1
1
1
16~17
DEC @Ri
间址片内RAM单元减1
1
1
15 __
DEC direct
直接寻址片内单元减1
2
1
A4
MUL AB
累加器乘寄存器B
1
4
84
DIV AB
累加器除以寄存器B
1
4
D4
DA A
十进制(BCD码加法结果)调整
1
1
逻
辑
运
算
类
指
令
58~5F
ANL A, Rn
累加器按位与工作寄存器
1
1
56~57
ANL A, @Ri
累加器按位与内部RAM单元
1
1
54 __
ANL A, #data
累加器按位与立即数
2
1
55 __
ANL A, direct
累加器按位与直接寻址单元
2
1
52 __
ANL direct, A
直接寻址片内单元按位与累加器
2
1
53 __ __
ANL direct, #data
直接寻址片内单元按位与立即数
3
1
48~4F
ORL A, Rn
累加器按位或工作寄存器
1
1
46~47
ORL A,@Ri
累加器按位或片内RAM单元
1
1
44 __
ORL A,#data
累加器按位或立即数
2
1
45 __
ORL A,direct
累加器按位或直接寻址片内单元
2
1
42 __
ORL direct, A
直接寻址片内单元按位或累加器
2
1
43 __ __
ORL direct, #data
直接寻址片内单元按位或立即数
3
1
68~6F
XRL A, Rn
累加器按位异或工作寄存器
1
1
66~67
XRL A,@Ri
累加器按位异或片内RAM单元
1
1
64 __
XRL A,#data
累加器按位异或立即数
2
1
65 __
XRL A,direct
累加器按位异或直接寻址片内单元
2
1
62 __
XRL direct, A
直接寻址片内单元按位异或累加器
2
1
63 __ __
XRL direct, #data
直接寻址片内单元按位异或立即数
3
2
23
RL A
累加器左循环移位
1
1
33
RLC A
累加器连进位标志左循环移位
1
1
03
RR A
累加器右循环移位
1
1
13
RRC A
累加器连进位标志右循环移位
1
1
F4
CPL A
累加器取反
1
1
E4
CLR A
累加器清零
1
1
布
尔
操
作
类
指
令
A2 __
MOV C, bit
直接寻址位送进位标志C (位累加器)
2
1
92 __
MOV bit, C
C送直接寻址位
2
1
C3
CLR C
C清零
1
1
C2 __
CLR bit
直接寻址位清零
2
1
B3
CPL C
C取反
1
1
B2 __
CPL bit
直接寻址位取反
2
1
D3
SETB C
C置位
1
1
D2 __
SETB bit
直接寻址位置位
2
1
82 __
ANL C, bit
C逻辑与直接寻址位
2
2
B0 __
ANL C, / bit
C逻辑与直接寻址位的反
2
2
72 __
ORL C, bit
C逻辑或直接寻址位
2
2
A0 __
ORL C, / bit
C逻辑或直接寻址位的反
2
2
控
制
转
移
类
指
令
02 __ __
LJMP addr16
64KB范围内长转移
3
2
*1 __
AJMP addr11
2KB范围内绝对转移(改变PC的A10~A0)
2
2
80 __
SJMP rel
相对短转移 (PC=PC+ rel)
2
2
73
JMP @A+DPTR
变址长转移
1
2
12 __ __
LCALL addr16
64KB范围内长调用
3
2
*1 __
ACALL addr11
2KB范围内绝对调用 (改变PC的A10~A0)
2
2
22
RET
返回
1
2
32
RETI
中断(服务子程序)返回
1
2
60 __
JZ rel
累加器为零转移
2
2
70 __
JNZ rel
累加器非零转移
2
2
40 __
JC rel
C为1转移
2
2
50 _
JNC rel
C为0转移
2
2
20 __ __
JB bit,rel
直接寻址位为1转移
3
2
30 __ __
JNB bit,rel
直接寻址为0转移
3
2
10 __ __
JBC bit,rel
直接寻址位为1转移并清该位为0
3
2
B4 __ __
CJNE A ,#data ,rel
累加器与立即数不等转移
3
2
B5 __ __
CJNE A ,direct ,rel
累加器与直接寻址片内单元不等转移
3
2
B8~BF _ _
CJNE Rn,#data ,rel
工作寄存器与立即数不等转移
3
2
B6~B7 _ _
CJNE @Ri ,#data ,rel
片内RAM单元与立即数不等转移
3
2
D8~DF _ _
DJNZ Rn ,rel
工作寄存器减1不为零转移
2
2
D6 __ __
DJNZ direct ,rel
直接寻址单元减1不为零转移
3
2
00
NOP
空操作
1
1
MCS-51指令代码(操作码)速查表
高四位
↓ → 低四位
0
1
2
3
4
5
6~7
8~F
0
NOP
AJMP0
LJMP addr16
RR A
INC A
INC dir
INC @Ri
INC Rn
1
JBC bit,rel
ACALL0
LCALL addr16
RRC A
DEC A
DEC dir
DEC @Ri
DEC Rn
2
JB bit,rel
AJMP1
RET
RL A
ADD A,#data
ADD A,dir
ADD A,@Ri
ADD A,Rn
3
JNB bit,rel
ACALL
RETI
RLC A
ADDC A,#data
ADDC A,dir
ADDC A,@Ri
ADDC A,Rn
4
JC rel
AJMP2
ORL dir,A
ORL dir,#data
ORL A,#data
ORL A,dir
ORL A,@Ri
ORL A,Rn
5
JNC rel
ACALL2
ANL dir,a
ANL dir,#data
ANL A,#data
ANL A,dir
ANL A,@Ri
ANL A,Rn
6
JZ rel
AJMP
3XX
XRL dir,A
XRL dir,#data
XRL A,#data
XRL A,dir
XRL A,@Ri
XRL A,Rn
7
JNZ rel
ACALL
3XX
ORL C,bit
JMP @A+DPTR
MOV A,#data
MOV dir,#data
MOV @Ri,#data
MOV Rn,#data
8
SJMP rel
AJMP
4XX
ANL C,bit
MOVC A,@A+PC
DIV A,B
MOV dir1,dir2
MOV dir,@Ri
MOV dir,Rn
9
MOV DP
TR,# data
ACALL
4XX
MOV bit,C
MOVC A,
@A+DPIR
SUBB A,#data
SUBB A,#dir
SUBB A,@Ri
SUBB A,Rn
A
ORL C,/bit
AJMP
5XX
MOV C,bit
INC DPTR
MUL AB
MOV @Ri,dir
MOV Rn,dir
B
ANL C,/bit
ACALL
5XX
CPL bit
CPL C
CJNE A,#data,rel
CJNE A,dir,rel
CJNE @Ri,
#data,rel
CJNE Rn,
#data,rel
C
PUSH dir
AJMP
6XX
CLR bit
CLR C
SWAP A
XCH A,dir
XCH A,@Ri
XCH A,Rn
D
POP dir
ACALL
6XX
SETB bit
SETB C
DA A
DJNZ dir,rel
XCHD A,@Ri
DJNZ Rn,rel
E
MOVX A,@DPTR
AJMP
7XX
MOVX A,@R0
MOVX A,@R1
CLR A
MOV A,dir
MOV A,@Ri
MOV A,Rn
F
MOVX
@DPTR,A
ACALL
7XX
MOVX @R0,A
MOVX @R1,A
CPL A
MOV dir,A
MOV @Ri,A
MOV Rn,A
0
1
2
3
4
5
6~7
8~F
↑ → 低四位
高四位
■数据传送指令 ■兼容8048的指令
展开阅读全文