您的当前位置:首页正文

MCS-51单片机的指令集(分类)

2022-09-27 来源:步旅网
MCS-51单片机的指令集

MCS-51系列单片机的指令系统,按功能分类可分为:数据传送、算术操作、逻辑操作、控制转移和布尔变量操作等五种。具体指令如下列表格所示:

1、数据传送类指令

助记符 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data8 MOV Rn,A MOV Rn,direct MOV Rn,#data8 MOV direct,A MOV direct,Rn MOV direct,direct MOV direct,@Ri MOV @Ri,A MOV @Ri,direct MOV @Ri,#data8 功能说明 寄存器内容送入累加器 直接地址单元中的数据送入累加器 间接RAM中的数据送入累加器 8位立即数送入累加器 累加器内容送入寄存器 直接地址单元中的数据送入寄存器 8位立即数送入寄存器 累加器内容送入直接地址单元 寄存器内容送入直接地址单元 直接地址单元中的数据送入直接地址单元 间接RAM中的数据送入直接地址单元 累加器内容送入间接RAM单元 直接地址单元中的数据送入间接RAM单元 8位立即数送入间接RAM单元 以DPTR为基地址变址寻址单元中的数据送入累加器 以PC为基地址变址寻址单元中的数据送入累加器 外部RAM(8位地址)送入累加器 外部RAM(16位地址)送入累加器 累加器送入外部RAM(8位地址) 累加器送入外部RAM(16位地址) 直接地址单元中的数据压入堆栈 堆栈中的数据弹出到直接地址单元 寄存器与累加器交换 字节数 1 2 1 2 1 2 2 2 2 3 2 3 1 2 2 3 1 1 1 1 1 1 2 2 1 振荡周期 12 12 12 12 12 24 12 12 24 24 24 24 12 24 12 24 24 24 24 24 24 24 24 24 12 MOV direct,#data8 8位立即数送入直接地址单元 MOV DPTR,#data16 16位立即数地址送入地址寄存器 MOV A,@A+DPTR MOV A,@A+PC MOV A,@Ri MOV A,@DPTR MOV @Ri,A MOV @DPTR,A PUSH direct POP DIRECT XCH A,Rn XCH A,direct XCH A,@Ri XCHD A,@Ri

直接地址单元与累加器交换 间接RAM与累加器交换 间接RAM与累加器进行低半字节交换 2 1 1 12 12 12 2、算术操作类指令

助记符 ADD A,Rn ADD A,direct ADD A,@Ri ADD A,#data8 ADDC A,Rn ADDC A,dirct ADDC A,@Ri ADDC A,#data8 SUBB A,Rn SUBB A,dirct SUBB A,@Ri SUBB A,#data8 INC A INC Rn INC direct INC @Ri INC DPTR DEC A DEC Rn DEC direct DEC @Ri MUL A,B DIV A,B DA A

功能说明 寄存器内容加到累加器 直接地址单元加到累加器 间接RAM内容加到累加器 8位立即数加到累加器 寄存器内容带进位加到累加器 直接地址单元带进位加到累加器 间接RAM内容带进位加到累加器 8位立即数带进位加到累加器 累加器带借位减寄存器内容 累加器带借位减直接地址单元 累加器带借位减间接RAM内容 累加器带借位减8位立即数 累加器加1 寄存器加1 直接地址单元内容加1 间接RAM内容加1 DPTR加1 累加器减1 寄存器减1 直接地址单元内容减1 间接RAM内容减1 A乘以B A除以B 累加器进行十进制转换 字节数 1 2 1 2 1 2 1 2 1 2 1 2 1 1 2 1 1 1 1 2 1 1 1 1 振荡周期 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 24 12 12 12 12 48 48 12

3、逻辑操作类指令

字节数 ANL A,Rn 累加器与寄存器相“与” 1 ANL A,direct 累加器与直接地址单元相“与” 2 ANL A,@Ri 累加器与间接RAM内容相“与” 1 ANL A,#data8 累加器与8位立即数相“与” 2 ANL direct,A 直接地址单元与累加器相“与” 2 直接地址单元与8位立即数相ANL direct,#data8 3 “与” ORL A,Rn 累加器与寄存器相“或” 1 ORL A,direct 累加器与直接地址单元相“或” 2 ORL A,@Ri 累加器与间接RAM内容相“或” 1 ORL A,#data8 累加器与8位立即数相“或” 2 ORL direct,A 直接地址单元与累加器相“或” 2 直接地址单元与8位立即数相ORL direct,#data8 3 “或” XRL A,Rn 累加器与寄存器相“异或” 1 XRL A,direct 累加器与直接地址单元相“异或” 2 累加器与间接RAM内容相“异XRL A,@Ri 1 或” XRL A,#data8 累加器与8位立即数相“异或” 2 XRL direct,A 直接地址单元与累加器相“异或” 2 直接地址单元与8位立即数相XRL direct,#data8 3 “异或” CLR A 累加器清0 1 CPL A 累加器求反 1 RL A 累加器循环左移 1 RLC A 累加器带进位循环左移 1 RR A 累加器循环右移 1 RRC A 累加器带进位循环右移 1 SWAP A 累加器半字节交换 1 助记符 功能说明

振荡周期 12 12 12 12 12 24 12 12 12 12 12 24 12 12 12 12 12 24 12 12 12 12 12 12 12

4、控制转移类指令

助记符 ACALL addr11 LACLL addr16 RET RETI AJMP addr11 LJMP addr16 SJMP rel JMP @A+DPTR JZ rel JNZ rel CJNE CJNE CJNE CJNE DJNZ DJNZ NOP

功能说明 绝对短调用子程序 长调用子程序 子程序返回 中断返回 绝对短转移 长转移 相对转移 相对于DPTR的间接转移 累加器为零转移 累加器非零转移 累加器与直接地址单元比较,不 A,direct,rel 等则转移 累加器与8位立即数比较,不等 A,#data8,rel 则转移 寄存器与8位立即数比较,不等 Rn,#data8,rel 则转移 @Ri,#data8,rel 间接RAM单元,不等则转移 Rn,rel 寄存器减1,非零转移 direct,rel 直接地址单元减1,非零转移 空操作 字节振荡周数 期 2 24 3 24 1 24 1 24 2 24 3 24 2 24 1 24 2 24 2 24 3 3 3 3 3 3 1 24 24 24 24 24 24 12 5、布尔变量操作类指令

字节数 CLR C 清进位位 1 CLR bit 清直接地址位 2 SETB C 置进位位 1 SETB bit 置直接地址位 2 CPL C 进位位求反 1 CPL bit 直接地址位求反 2 ANL C,bit 进位位和直接地址位相“与” 2 ANL C,bit 进位位和直接地址位的反码相“与” 2 ORL C,bit 进位位和直接地址位相“或” 2 ORL C,bit 进位位和直接地址位的反码相“或” 2 MOV C,bit 直接地址位送入进位位 2 MOV bit,C 进位位送入直接地址位 2 JC rel 进位位为1则转移 2 JNC rel 进位位为0则转移 2 JB bit,rel 直接地址位为1则转移 3 JNB bit,rel 直接地址位为0则转移 3 JBC bit,rel 直接地址位为1则转移,该位清零 3 助记符 功能说明

振荡周期 12 12 12 12 12 12 24 24 24 24 12 24 24 24 24 24 24

因篇幅问题不能全部显示,请点此查看更多更全内容