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 | |

浙公网安备 33010602011771号