MCS51 指令系统常用符号及含义.docx
《MCS51 指令系统常用符号及含义.docx》由会员分享,可在线阅读,更多相关《MCS51 指令系统常用符号及含义.docx(16页珍藏版)》请在冰豆网上搜索。
MCS51指令系统常用符号及含义
MCS-51指令系统常用符号及含义
addr11
11位地址
addr16
116位地址
bit
1内部RAM或专用寄存器中的直接寻址位
rel
1补码形式的8位地址偏移量
direct
1直接地址单元(RAM,SFR,I/O)
#data
1立即数
Rn
1当前寄存器区的8个通用工作寄存器R0~R7(n=0~7)
Ri
1当前寄存器区中可作间址寄存器的2个通用工作寄存器R0、R1(i=0、1)
A
1累加器
B
1专用寄存器,用于MUL和DIV指令中。
C
1进位标志或进位位,或布尔处理机中的累加器。
@
1间接寻址方式中,表示间接寄存器的符号。
/
1位操作数的前缀,表示对该位操作数先取反再参与操作,但不影响该操作数。
(X)
1X中的内容。
((X))
1由X寻址的单元中的内容。
←
1箭头左边的内容被箭头右边的内容所代替。
∧
1逻辑“与”
∨
1逻辑“或”
⊕
1逻辑“异或”
表A-1数据传送类指令
十六进制代码
指令助记符
说明
字节数
执行周期数
E8~EF
MOVA,Rn
(A)←(Rn)
1
1
E5
MOVA,direct
(A)←(direct)
2
1
E6,E7
MOVA,@Ri
(A)←((Ri))
1
1
74
MOVA,#data
(A)←data
2
1
F8~FF
MOVRn,A
(Rn)←(A)
1
1
A8~AF
MOVRn,direct
(Rn)←(direct)
2
2
78~7F
MOVRn,#data
(Rn)←data
2
1
F5
MOVdirect,A
(direct)←(A)
2
1
88~8F
MOVdirect,Rn
(direct)←(Rn)
2
2
85
MOVdirect1,direct2
(direct1)←(direct2)
3
2
86,87
MOVdirect,@Ri
(direct)←((Ri))
2
2
75
MOVdirect,#data
(direct)←data
3
2
F6,F7
MOV@Ri,A
((Ri))←(A)
1
1
A6,A7
MOV@Ri,direct
((Ri))←(direct)
2
2
76,77
MOV@Ri,#data
((Ri))←data
2
1
90
MOVDPTR,#data16
(DPTR)←data16
3
2
93
MOVCA,@A+DPTR
(A)←((A)+(DPTR))
1
2
83
MOVCA,@A+PC
(A)←((A)+(PC))
1
2
E2,E3
MOVXA,@Ri
(A)←((P2)+(Ri)
1
2
E0
MOVXA,@DPTR
(A)←((DPTR))
1
2
F2,F3
MOVX@Ri,A
((P2)+(Ri))←(A)
1
2
F0
MOVX@DPTR,A
((DPTR))←(A)
1
2
C0
PUSHdirect
(SP)←(SP)+1,((SP))←(direct)
2
2
D0
POPdirect
(direct)←((SP)),(SP)←(SP)-1
2
2
C8~CF
XCHA,Rn
(A)
(Rn)
1
1
C5
XCHA,direct
(A)
(direct)
2
1
C6,C7
XCHA,@Ri
(A)
((Ri))
1
1
D6,D7
XCHDA,@Ri
(A)3~0
(Rn)3~0
1
1
表A-2算术运算类指令
十六进制代码
指令助记符
说明
字节数
执行周期数
28~2F
ADDA,Rn
(A)←(A)+(Rn)
1
1
25
ADDA,direct
(A)←(A)+(direct)
2
1
26,27
ADDA,@Ri
(A)←(A)+((Ri))
1
1
24
ADDA,#data
(A)←(A)+data
2
1
38~3F
ADDCA,Rn
(A)←(A)+(Rn)+CY
1
1
35
ADDCA,direct
(A)←(A)+(direct)+CY
2
1
36,37
ADDCA,@Ri
(A)←(A)+((Ri))+CY
1
1
34
ADDCA,#data
(A)←(A)+data+CY
2
1
98~9F
SUBBA,Rn
(A)←(A)-(Rn)-CY
1
1
95
SUBBA,direct
(A)←(A)-(direct)-CY
2
1
96,97
SUBBA,@Ri
(A)←(A)-((Ri))-CY
1
1
94
SUBBA,#data
(A)←(A)-data-CY
2
1
04
INCA
(A)←(A)+1
1
1
08~0F
INCRn
(Rn)←(Rn)+1
1
1
05
INCdirect
(direct)←(direct)+1
2
1
06,07
INC@Ri
((Ri))←((Ri))+1
1
1
A3
INCDPTR
(DPTR)←(DPTR)+1
1
2
14
DECA
(A)←(A)-1
1
1
18~1F
DECRn
(Rn)←(Rn)-1
1
1
15
DECdirect
(direct)←(direct)-1
2
1
16,17
DEC@Ri
((Ri))←((Ri))-1
1
1
A4
MULAB
(B)(A)←(A)×(B)
1
4
84
DIVAB
AB←(A)/(B)
1
4
D4
DAA
对A进行十进制调整指令
1
1
表A-3逻辑操作类指令
十六进制代码
指令助记符
说明
字节数
执行周期数
58~5F
ANLA,Rn
(A)←(A)∧(Rn)
1
1
55
ANLA,direct
(A)←(A)∧(direct)
2
1
56,57
ANLA,@Ri
(A)←(A)∧((Ri))
2
1
54
ANLA,#data
(A)←(A)∧data
2
1
52
ANLdirect,A
(direct)←(direct)∧(A)
2
1
53
ANLdirect,#data
(direct)←(direct)∧(data)
3
2
48~4F
ORLA,Rn
(A)←(A)∨(Rn)
1
1
45
ORLA,direct
(A)←(A)∨(direct)
2
1
46,47
ORLA,@Ri
(A)←(A)∨((Ri))
1
1
44
ORLA,#data
(A)←(A)∨data
2
1
42
ORLdirect,A
(direct)←(direct)∨(A)
2
1
43
ORLdirect,#data
(direct)←(direct)∨data
3
2
68~6F
XRLA,Rn
(A)←(A)⊕(Rn)
1
1
65
XRLA,direct
(A)←(A)⊕(direct)
2
1
66,67
XRLA,@Ri
(A)←(A)⊕((Ri))
1
1
64
XRLA,#data
(A)←(A)⊕data
2
1
62
XRLdirect,A
(direct)←(direct)⊕(A)
2
1
63
XRLdirect,#data
(direct)←(direct)⊕data
3
2
E4
CLRA
(A)←0
1
1
F4
CPLA
(A)←
1
1
23
RLA
累加器A循环左移一位
1
1
33
RLCA
累加器A带进位循环左移一位
1
1
03
RRA
累加器A循环右移一位
1
1
13
RRCA
累加器A带进位循环右移一位
1
1
C4
SWAPA
对累加器A进行半字节交换
1
1
表A-4控制转移类指令
十六进制代码
指令助记符
说明
字节数
执行周期数
*1
ACALLaddr11
PC←(PC)+2,SP←(SP)+1
(SP)←(PC)L,SP←(SP)+1
(SP)←(PC)H,PC10~PC0←addr11
2
2
12
LCALLaddr16
PC←(PC)+3,SP←(SP)+1
(SP)←(PC)L,SP←(SP)+1
(SP)←(PC)H,PC←addr16
3
2
22
RET
PCH←((SP)),SP←(SP)-1
PCL←((SP)),SP←(SP)-1
子程序返回
1
2
32
RETI
PCH←((SP)),SP←(SP)-1
PCL←((SP)),SP←(SP)-1
中断返回
1
2
*1
AJMPaddr11
(PC)←(PC)+2
PC10~PC0←addr11
PC15~PC11不变
2
2
02
LJMPaddr16
(PC)←addr16
3
2
80
SJMPrel
(PC)←(PC)+2
(PC)←(PC)+rel
2
2
73
JMP@A+DPTR
(PC)←(A)+DPTR)
1
2
60
JZrel
(PC)←(PC)+2
若(A)=0,则(PC)←(PC)+rel
2
2
70
JNZrel
(PC)←(PC)+2
若(A)≠0,则(PC)←(PC)+rel
2
2
E5
CJNEA,direct,rel
(PC)←(PC)+3
若(A)≠(direct),则(PC)←(PC)+rel
3
2
B4
CJNEA,#data,rel
(PC)←(PC)+3
若(A)≠data,则(PC)←(PC)+rel
3
2
B8~BF
CJNERn,#data,rel
(PC)←(PC)+3
若(Rn)≠data,则(PC)←(PC)+rel
3
2
B6,B7
CJNE@Ri,#data,rel
(PC)←(PC)+3
若((Ri))≠data,则(PC)←(PC)+rel
3
2
D8~DF
DJNZRn,rel
(PC)←(PC)+2,
(Rn)←(Rn)-1
若(Rn)≠0,则(PC)←(PC)+rel
2
2
D5
DJNZdirect,rel
(PC)←(PC)+2,
(direct)←(direct)-1
若(direct)≠0,则PC)←(PC)+rel
3
2
00
NOP
空操作
1
1
表A-5位操作类指令
十六进制代码
指令助记符
说明
字节数
执行周期数
C3
CLRC
CY←0
1
1
C2
CLRbit
(bit)←0
2
1
D3
SETBC
CY←1
1
1
D2
SETBbit
(bit)←1
2
1
B3
CPLC
CY←
1
1
B2
CPLbit
(bit)←
2
1
82
ANLC,bit
(CY)←(CY)∧bit
2
2
B0
ANLC,/bit
(CY)←(CY)∧
2
2
72
ORLC,bit
(CY)←(CY)∨bit
2
2
A0
ORLC,/bit
(CY)←(CY)∨
2
2
A2
MOVC,bit
(CY)←(bit)
2
1
92
MOVbit,C
(bit)←(CY)
2
1
40
JCrel
(PC)←(PC)+2
若(CY)=1,则(PC)←(PC)+rel
2
2
50
JNCrel
(PC)←(PC)+2
若(CY)=0,则(PC)←(PC)+rel
2
2
20
JBbit,rel
(PC)←(PC)+3
若(bit)=1,则(PC)←(PC)+rel
3
2
30
JNBbit,rel
(PC)←(PC)+3
若(bit)=0,则(PC)←(PC)+rel
3
2
10
JBCbit,rel
(PC)←(PC)+3,若(bit)=1,
则(PC)←(PC)+rel,(bit)←0
3
2