单片机汇编指令表
	2025-09-29 04:13:28
		责编:小OO
		
		
		
    
单片机ATS51汇编指令表
数据传送指令
| 序 | 助记符 | 功能 | 字节数 | 振荡周期 | 
| 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,dinrect | 直接地址单元中的数据送入寄存器 | 2 | 24 | 
| 7 | MOV | Rn,#data | 立即数送入寄存器 | 2 | 12 | 
| 8 | MOV | direct,A | 累加器内容送入直接地址单元 | 2 | 12 | 
| 9 | MOV | direct,A | 寄存器内容送入直接地址单元 | 2 | 24 | 
| 10 | MOV | Direct,direct | 直接地址单元中的数据送入另一个直接地址单元 | 3 | 24 | 
| 11 | MOV | Direct,@Ri | 间接RAM中的数据送入另一个直接地址单元 | 2 | 24 | 
| 12 | MOV | Eirect,#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 | DPTR,#datl6 | 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 | ADD | A,Rn | 寄存器内容加到累加器 | 1 | 12 | 
| 2 | ADD | A,direct | 直接地址单元的内容加到累加器 | 2 | 12 | 
| 3 | ADD | A,@Ri | 间接RAM的内容加到累加器 | 1 | 12 | 
| 4 | ADD | A,#data | 立即数加到累加器 | 2 | 12 | 
| 5 | ADDC | A,Rn | 寄存器内容带进位加到累加器 | 1 | 12 | 
| 6 | ADDC | A,direct | 直接地址单元的内容带进位加到累加器 | 2 | 12 | 
| 7 | ADDC | A,@Ri | 间接RAM的内容带进位回到累加器 | 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 | @Ri | 间接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 | 
逻辑操作类指令
| 序 | 助记符 | 功能 | 字节数 | 振荡周期 | 
| 1 | ANL | A,Rn | 累加器与寄存器相“与” | 1 | 12 | 
| 2 | ANL | A,@Ri | 累加器与直接地址单元相“与” | 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 | Addrl1 | 绝对(短)调用子程序 | 2 | 24 | 
| 2 | LCALL | Addr16 | 长调用子程序 | 3 | 24 | 
| 3 | RET |  | 子程序返回 | 1 | 24 | 
| 4 | RETI |  | 中断返回 | 1 | 24 | 
| 5 | AJMP | Addrl1 | 绝对(短)转移 | 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 | 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 | MOV | 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 | 
 黎笋
                                                  2006-7-25下载本文
显示全文