指 令 集(111 条)
助 记 符
说明
字节 周期 代 码
MOV A,Rn
MOV A,data
MOV A,@Ri
MOV A,#data
MOV Rn,A
MOV Rn,data
MOV Rn,#data
MOV data,A
MOV data,Rn
MOV data,data
MOV data,@Ri
MOV data,#data
MOV @Ri,A
MOV @Ri,data
MOV @Ri,#data
MOV DPTR,#data16
MOV C,bit
MOV bit,C
MOVC A,@A+DPTR
MOVC A,@A+PC
MOVX A,@Ri
MOVX A,@DPTR
MOVX @Ri,A
MOVX @DPTR,A
PUSH data
POP data
XCH A,Rn
XCH A,data
XCH A,@Ri
XCHD A,@Ri
ANL A,Rn
ANL A,data
ANL A,@Ri
ANL A,#data
ANL data,A
ANL data,#data
ANL C,bit
ANL C,/bit
1.数据传送指令(30 条)
寄存器送 A
直接字节送 A
间接 RAM 送 A
立接数送 A
A 送寄存器
直接数送寄存器
立即数送寄存器
A 送直接字节
寄存器送直接字节
直接字节送直接字节
间接 Rn 送直接字节
立即数送直接字节
A 送间接 Rn
直接字节送间接 Rn
立即数送间接 Rn
16 位常数送数据指针
直接位送进位位
进位位送直接位
A+DPTR 寻址程序存贮字节送 A
A+PC 寻址程序存贮字节送 A
外部数据送 A(8 位地址)
外部数据送 A(16 位地址)
A 送外部数据(8 位地址)
A 送外部数据(16 位地址)
直接字节进栈道,SP 加 1
直接字节出栈,SP 减 1
寄存器与 A 交换
直接字节与 A 交换
间接 Rn 与 A 交换
间接 Rn 与 A 低半字节交换
2.逻辑运算指令(35 条)
寄存器与到 A
直接字节与到 A
间接 RAM 与到 A
立即数与到 A
A 与到直接字节
立即数与到直接字节
直接位与到进位位
直接位的反码与到进位位
1
2
1
2
1
2
2
2
2
3
2
3
1
1
2
3
2
2
3
1
1
1
1
1
2
2
1
2
1
1
1
2
1
2
2
3
2
2
1
1
1
1
1
2
1
1
1
2
2
2
2
1
2
1
1
2
2
2
2
2
2
2
2
2
1
1
1
1
1
1
1
1
1
2
2
2
E8--EF
E5
E6--E7
74
F8--FF
A8--AF
78--7F
F5
88—8F
85
86;87
75
F6;F7
A6;A7
76;77
90
A2
92
93
83
E2;E3
E0
F2;F3
F0
C0
D0
C8—CF
C5
C6;C7
D6;D7
58—5F
55
56;57
54
52
53
82
B0
- 1 -
ORL A,Rn
ORL A,data
ORL A,@Ri
ORL A,#data
ORL data,A
ORL data,#data
ORL C,bit
ORL C,/bit
XRL A,Rn
XRL A,data
XRL A,@Ri
XRL A,#data
XRL data,A
XRL data,#data
SETB C
SETB bit
CLR A
CLR C
CLR bit
CPL A
CPL C
CPL bit
RL A
RLC A
RR A
RRC A
SWAP A
ADD A,Rn
ADD A,data
ADD A,@Ri
ADD A,#data
ADDC A,Rn
ADDC A,data
ADDC A,@Ri
ADDC A,#data
SUBB A,Rn
SUBB A,data
SUBB A,@Ri
SUBB A,#data
INC A
INC Rn
INC data
寄存器或到 A
直接字节或到 A
间接 RAM 或到 A
立即数或到 A
A 或到直接字节
立即数或到直接字节
直接位或到进位位
直接位的反码或到进位位
寄存器异或到 A
直接字节异或到 A
间接 RAM 异或到 A
立即数异或到 A
A 异或到直接字节
立即数异或到直接字节
进位位置 1
直接位置 1
A 清 0
进位位清 0
直接位清 0
A 求反码
进位位取反
直接位取反
A 循环左移一位
A 带进位左移一位
A 右移一位
A 带进位右移一位
A 半字节交换
3.算术运算指令(24 条)
寄存器加到 A
直接字节加到 A
间接 RAM 加到 A
立即数加到 A
寄存器带进位加到 A
直接字节带进位加到 A
间接 RAM 带进位加到 A
立即数带进位加到 A
从 A 中减去寄存器和进位
从 A 中减去直接字节和进位
从 A 中减去间接 RAM 和进位
从 A 中减去立即数和进位
A 加 1
寄存器加 1
直接字节加 1
1
2
1
2
2
3
2
2
1
2
1
2
2
3
1
2
1
1
2
1
1
2
1
1
1
1
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
1
1
1
1
1
2
2
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
48—4F
45
46;47
44
42
43
72
A0
68—6F
65
66;67
64
62
63
D3
D2
E4
C3
C2
F4
B3
B2
23
33
03
13
C4
28—2F
25
26;27
24
38—3F
35
36;37
34
98—9F
95
96;97
94
04
08—0F
05
- 2 -
间接 RAM 加 1
数据指针加 1
A 减 1
寄存器减 1
直接字节减 1
间接 RAM 减 1
A 乘 B
A 被 B 除
A 十进制调整
1
1
1
1
2
1
1
1
1
INC @Ri
INC DPTR
DEC A
DEC Rn
DEC data
DEC @Ri
MUL AB
DIV AB
DA A
4.转移指令(22 条)
AJMP addr 11
2
LJMP addr 16
3
SJMP rel
2
JMP @A+DPTR
1
JZ rel
2
JNZ rel
2
JC rel
2
JNC rel
2
JB bit,rel
3
JNB bit,rel
3
JBC bit,rel
3
CJNE A,data,rel
3
CJNE A,#data,rel
3
CJNE @Ri,#data,rel 立即数与间接 RAM 比较,不等转移 3
3
CJNE Rn,#data,rel 立即数与寄存器比较不等转移
DJNZ Rn,rel
2
3
DJNZ data,rel
2
ACALL addr 11
LCALL addr 16
3
1
RET
1
RETI
NOP
1
绝对转移
长转移
短转移
相对于 DPTR 间接转移
若 A=0 则转移
若 A≠0 则转移
若 C=1 则转移
若 C≠1 则转移
若直接位=1 则转移
若直接位=0 则转移
若直接位=1 则转移且清除
直接数与 A 比较,不等转移
立即数与 A 比较,不等转移
寄存器减 1 不为 0 转移
直接字节减 1 不为 0 转移
绝对子程序调用
子程序调用
子程序调用返回
中断程序调用返回
空操作
1
2
1
1
1
1
4
4
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
1
06;07
A3
14
18—1F
15
16;17
A4
84
D4
*1
02
80
73
60
70
40
50
20
30
10
B5
B4
B6;B7
B8—BF
D8—DF
D5
*1
12
22
32
00
- 3 -