51汇编语言指令集
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 | 累加器与内部RAM单元 | 1 | 1 | |
ANL A, #data | 累加器与立即数 | 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 |