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 ANL A, #data |
累加器与内部RAM单元 |
1 |
1 |
|
累加器与立即数 |
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 |