MCS-51系列单片机指令系统表
数据传送类指令
序 助记符 功能 字节数 振荡周期
1 MOV A,Rn 寄存器内容送入累加器 1 12
2 MOV A,direct 直接地址单元中的数据送入累加器 2 12
3 MOV A,@Ri 间接RAM中的数据送入累加器 1 12
4 MOV A,#tata 立即数送入累加器 2 12
5 MOV Rn,A 累加器内容送入寄存器 1 12
6 MOV Rn,direct 直接地址单元中的数据送入寄存器 2 24
7 MOV Rn,#data 立即数送入寄存器 2 12
8 MOV direct,A 累加器内容送入直接地址单元 2 12
9 MOV direct,Rn 寄存器内容送入直接地址单元 2 24
10 MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元 3 24
11 MOV direct,@Ri 间接RAM中的数据送入直接地址单元 2 24
12 MOV direct,#data 立即数送入直接地址单元 3 24
13 MOV @Ri,A 累加器内容送间接RAM单元 1 12
14 MOV @Ri,direct 直接地址单元数据送入间接RAM单元 2 24
15 MOV @RI,#data 立即数送入间接RAM单元 2 12
16 MOV DRTR,#dat16 16位立即数送入地址寄存器 3 24
17 MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器 1 24
18 MOVC A,@A+PC 以PC为基地址变址寻址单元中的数据送入累加器 1 24
19 MOVX A,@Ri 外部RAM(8位地址)送入累加器 1 24
20 MOVX A,@DPTR 外部RAM(16位地址)送入累加器 1 24
21 MOVX @Ri,A 累计器送外部RAM(8位地址) 1 24
22 MOVX @DPTR,A 累计器送外部RAM(16位地址) 1 24
23 PUSH direct 直接地址单元中的数据压入堆栈 2 24
24 POP direct 弹栈送直接地址单元 2 24
25 XCH A,Rn 寄存器与累加器交换 1 12
26 XCH A,direct 直接地址单元与累加器交换 2 12
27 XCH A,@Ri 间接RAM与累加器交换 1 12
28 XCHD A,@Ri 间接RAM的低半字节与累加器交换 1 12
布尔变量操作类指令
序 助记符 功 能
字节数 振荡周期
1 CLR C 清进位位 1 12
2 CLR bit 清直接地址位 2 12
3 SETB C 置进位位 1 12
4 SETB bit 置直接地址位 2 12
5 CPL C 进位位求反 1 12
6 CPL bit 置直接地址位求反 2 12
7 ANL C,bit 进位位和直接地址位相“与” 2 24
8 ANL C,bit 进位位和直接地址位的反码相“与” 2 24
9 ORL C,bit 进位位和直接地址位相“或” 2 24
10 ORL C,bit 进位位和直接地址位的反码相“或” 2 24
11 MOV C,bit 直接地址位送入进位位 2 12
12 MOV bit,C 进位位送入直接地址位 2 24
13 JC rel 进位位为1则转移 2 24
14 JNC rel 进位位为0则转移 2 24
15 JB bit,rel 直接地址位为1则转移 3 24
16 JNB bit,rel 直接地址位为0则转移 3 24
17 JBC bit,rel 直接地址位为1则转移,该位清零 3 24
逻辑操作数指令
序 助记符 功 ; 能
字节数 振荡周期
1 ANL A,Rn 累加器与寄存器相“与” 1 12
2 ANL A,direct 累加器与直接地址单元相“与” 2 12
3 ANL A,@Ri 累加器与间接RAM单元相“与” 1 12
4 ANL A,#data 累加器与立即数相“与” 2 12
5 ANL direct,A 直接地址单元与累加器相“与” 2 12
6 ANL direct,#data 直接地址单元与立即数相“与” 3 24
7 ORL A,Rn 累加器与寄存器相“或” 1 12
8 ORL A,direct 累加器与直接地址单元相“或” 2 12
9 ORL A,@Ri 累加器与间接RAM单元单元相“或” 1 12
10 ORL A,#data 累加器与立即数相“或” 2 12
11 ORL direct,A 直接地址单元与累加器相“或” 2 12
12 ORL direct,#data 直接地址单元与立即数相“或” 3 24
13 XRL A,Rn 累加器与寄存器相“异或” 1 12
14 XRL A,direct 累加器与直接地址单元相“异或” 2 12
15 XRL A,@Ri 累加器与间接RAM单元单元相“异或” 1 12
16 XRL A,#data 累加器与立即数相“异或” 2 12
17 XRL direct,A 直接地址单元与累加器相“异或” 2 12
18 XRL direct,#data 直接地址单元与立即数相“异或” 3 24
19 CLR A 累加器清“0” 1 12
20 CPL A 累加器求反 1 12
21 RL A 累加器循环左移 1 12
22 RLC A 累加器带进位位循环左移 1 12
23 RR A 累加器循环右移 1 12
24 RRC A 累加器带进位位循环右移 1 12
25 SWAP A 累加器半字节交换 1 12
控制转移类指令
序 助记符 功 能
字节数 振荡周期
1 ACALL addr11 绝对(短)调用子程序 2 24
2 LCALL addr16 长调用子程序 3 24
3 RET 子程序返回 1 24
4 RETI 中数返回 1 24
5 AJMP addr11 绝对(短)转移 2 24
6 LJMP addr16 长转移 3 24
7 SJMP rel 相对转移 2 24
8 JMP @A+DPTR 相对于DPTR的间接转移 1 24
9 JZ rel 累加器为零转移 2 24
10 JNZ rel 累加器非零转移 2 24
11 CJNE A,direct,rel 累加器与直接地址单元比较,不相等则转移 3 24
12 CJNE A,#data,rel 累加器与立即数比较,不相等则转移 3 24
13 CJNE Rn,#data,rel 寄存器与立即数比较,不相等则转移 3 24
14 CJNE @Ri,#data,rel 间接RAM单元与立即数比较,不相等则转移 3 24
15 DJNZ Rn,rel 寄存器减1,非零转移 3 24
16 DJNZ direct,erl 直接地址单元减1,非零转移 3 24
17 NOP 空操作 1 12
算术操作类指令
1 ADD A,Rn 寄存器内容加到累加器 1 12
2 ADD A,direct 直接地址单元的内容加到累加器 2 12
3 ADD A,@Ri 间接ROM的内容加到累加器 1 12
4 ADD A,#data 立即数加到累加器 2 12
5 ADDC A,Rn 寄存器内容带进位加到累加器 1 12
6 ADDC A,direct 直接地址单元的内容带进位加到累加器 2 12
7 ADDC A,@Ri 间接ROM的内容带进位加到累加器 1 12
8 ADDC A,#data 立即数带进位加到累加器 2 12
9 SUBB A,Rn 累加器带借位减寄存器内容 1 12
10 SUBB A,direct 累加器带借位减直接地址单元的内容 2 12
11 SUBB A,@Ri 累加器带借位减间接RAM中的内容 1 12
12 SUBB A,#data 累加器带借位减立即数 2 12
13 INC A 累加器加1 1 12
14 INC Rn 寄存器加1 1 12
15 INC direct 直接地址单元加1 2 12
16 INC @Ri 间接RAM单元加1 1 12
17 DEC A 累加器减1 1 12
18 DEC Rn 寄存器减1 1 12
19 DEC direct 直接地址单元减1 2 12
20 DEC @Rj 间接RAM单元减1 1 12
21 INC DPTR 地址寄存器DPTR加1 1 24
22 MUL AB A乘以B 1 48
23 DIV AB A除以B 1 48
24 DA A 累加器十进制调整 1 12
暂无评论,赶紧抢沙发吧