资源描述
单片机指令功能一览表
指令
机器码
功能说明
数据传送类指令
MOV A,Rn
E8~EF
寄存器送累加器
MOV A,dir
E5 dir
直接字节送累加器
MOV A,@Ri
ER~E7
间接RAM送累加器
MOV A,#data
74 data
立即数送累加器
MOV Rn,A
F8~FF
累加器送寄存器
MOV Rn,dir
A8~AF dir
直接字节送寄存器
MOV Rn,#data
78~7F data
立即数送寄存器
MOV dir,A
F5 dir
累加器送直接字节
MOV dir,Rn
88~8F dir
寄存器送直接字节
MOV dir1,dir2
85 dir2 dir1
直接字节送直接字节
MOV dir,@Ri
86~87 dir
间接RAM送直接字节
MOV dir,#data
75 dir data
立即数送直接字节
MOV @Ri,A
F6~F7
累加器送间接RAM
MOV @Ri,#dir
A6~A7
直接字节送间接RAM
MOV @Ri,#data
76~77 data
立即数送间接RAM
MOV DPTR,#data16
90 data15~8
data7~0
16位立即数送数据指针
MOVC A,@A+DPTR
93
以DPTR为变址寻址的程序存储器读操作
MOVC A,@A+PC
83
以PC为变址寻址的程序存储器读操作
MOVX A,@Ri
E2~E3
外部RAM(8位地址)读操作
MOVX A,@DPTR
E0
外部RAM(16位地址)读操作
MOVX @Ri,A
F2~F3
外部RAM(8位地址)写操作
MOVX @DPTR,A
F0
外部RAM(16位地址)写操作
PUSH dir
C0 dir
直接字节进栈,SP加1
POP dir
D0 dir
直接字节退栈,SP减1
XCH A,Rn
C8~CF
交换累加器和寄存器
XCH A,dir
C5 dir
交换累加器和直接字节
XCH A,@Ri
C6~C7
交换累加器和间接RAM
XCH A,@Ri
D6~D7
交换累加器和间接RAM的低位
算术运算指令
ADD A,Rn
28~2F
寄存器加到累加器
ADD A,dircet
25 dircet
直接字节加到A
ADD A,@Ri
26~27
间接RAM加到A
ADD A,#data
24data
立即数加到A
ADD A,Rn
38~3F
寄存器和进位位加到A
ADD A,dircet
35dircet
直接字节和进位位加到A
ADD A,@Ri
36~37
间接字节和进位位加到A
ADD A,data
34 data
立即数和进位位加到A
ADD A,Rn
98~9F
A减去寄存器和进位位
ADD A,dircet
95 dircet
A减去直接字节和进位位
ADD A,@Ri
36~37
间接RAM和进位位加到A
ADD A,data
34 data
立即数和进位位加到A
SUBB A,Rn
98~9F
A减去寄存器和进位位
SUBB A,dircet
95 dircet
A减去直接字节和进位位
SUBB A,@Ri
96~97
A减去间接RAM和进位位
SUBB A,#data
94 data
A减去立即数和进位位
INC A
04
A加1
INC Rn
08~0F
寄存器加1
INC dircet
05 dircet
直接字节加1
INC @Ri
06~07
间接RAM加1
DEC A
14
A减1
DEC Rn
18~1F
寄存器减1
DEC dircet
15 dircet
直接字节减1
DEC @Ri
16~17
间接RAM减1
INC DPTR
A3
数据指针加1
MUL AB
A4
A乘以B
DIV AB ,
84
A除以B
DA A
D4
A的十进制加法调整
逻辑操作
ANL A,Rn
58~5F
寄存器“与”到A
ANL A,dircet
55 dircet
直接字节“与”到A
ANL A,@Ri
56~57
间接RAm“与”到A
ANL A,#data
54 data
立即数“与”到A
ANL dircet A
52 dircet
A“与”到直接字节
ANL dircet,#data ,
53 dircet data
立即数“与”到直接字节
ORL A,Rn
48~4F
寄存器“或”到A
ORL A,dircet ,
45 dircet
直接字节“或”到A
ORL A,@Ri
46~47
间接RAM“或”到A
ORL A,#data
44 data
立即数“或”到A
ORL dircet,A
42 dircet
A“或”到直接字节
ORL dircet,#data ,
43 dircet data
立即数“或”到直接字节
XRL A,Rn
68~6F
寄存器“异或”到A
XRL A,dircet
65 dircet
直接字节“异或”到A
XRL A,@Ri
66~67
间接RAM“异或”到A
XRL A,#data
64 data
立即数“异或”到A
XRL dircet A
62 dircet
A“异或”到直接字节
XRL dircet,#data ,
63 dircet data
立即数“异或”到直接
字节
CLR A
E4
清零
CPL A
F4
A取反
RL A
23
A左环移
RLC A
33
A通过进位左环移
RR A
03
A右环移
RRC A
13
A通过进位右环移
SWAP A
C4
A半字节交换
控制程序转移
ACALL addr 11
addr(a10~a8)10001 addr(a7~a0)
绝对子程序调用
LCALL addr 16
12 addr(15~8)
addr(7~0)
长子程序调用
RET
22
子程序调用返回
RETI addr 11
32
中断调用返回
AJMP addr 11
addr(a10~a8)00001 addr(a7~a0)
绝对转移
LJMP addr 16
02 addr(15~8)
addr(7~0)
长转移
SJMP rel
80 rel
短转移,相对转移
JMP @A+DPTR,
73
相对于DPTR间接转移
JZ rel
60 rel
A为零转移
JNZ rel
70 rel
A为零转移
CJNE A,dircet,rel
B5 dircet rel
直接字节与A比较,不等则转移
CJNE A,#data,rel
B4 data rel
立即数与A比较,不等则转移
CJNE A,Rn,#data,rel
B8~BF data rel
立即数与寄存器比较,不等则转移
CJNE @Ri,#data,rel
B6~B7 data rel
立即数与间接RAM比较,不等则转移
DJNZ Rn,rel
D8~DF rel
寄存器减1,不为零则转移
DJNZ dircet,rel
B5 dircet rel
直接字节减1,不为零则转移
NOP
00
空操作
布尔变量操作
CLR C
C3
清零进位
CLR bit
C2
清零直接位
SETB C
D3
置位进位
SETB bit
D2
置位直接位
CPL C
B3
进位取反
CPL bit
B2
直接位取反
ANL C,bit
82 dit
直接数“与”到进位
ANL C,/bit
B0
直接位的反“与”到进位
ORL C,bit
72 bit
直接位“或”到进位
ORL C,/bit
A0 bit
直接位的反“或”到进位
MOV C,bit
A2 bit
直接位送进位
MOV bit,C
92 bit
进位送直接位
JC rel
40 rel
进位位为1转移
JNC rel
50 rel
进位位为0转移
JB bit,rel
20 bit rel
直接位为1相对转移
JNB bit,rel
30 bit rel
直接位为0相对转移
JBC bit,rel
10 bit rel
直接位为1相对转移,然
dir-直接地址 data-立即数 rel-偏移量
展开阅读全文