1、 助记符说明表助记符 指令说明 字节数 周期数(数据传递类指令)MOV A,Rn 寄存器传送到累加器 1 1MOV A,direct 直接地址传送到累加器 2 1MOV A,Ri 累加器传送到外部 RAM(8 地址) 1 1MOV A,#data 立即数传送到累加器 2 1MOV Rn,A 累加器传送到寄存器 1 1MOV Rn,direct 直接地址传送到寄存器 2 2MOV Rn,#data 累加器传送到直接地址 2 1MOV direct,Rn 寄存器传送到直接地址 2 1MOV direct,direct 直接地址传送到直接地址 3 2MOV direct,A 累加器传送到直接地址 2
2、 1MOV direct,Ri 间接 RAM 传送到直接地址 2 2MOV direct,#data 立即数传送到直接地址 3 2MOV Ri,A 直接地址传送到直接地址 1 2MOV Ri,direct 直接地址传送到间接 RAM 2 1MOV Ri,#data 立即数传送到间接 RAM 2 2MOV DPTR,#data16 16 位常数加载到数据指针 3 1MOVC A,A+DPTR 代码字节传送到累加器 1 2MOVC A,A+PC 代码字节传送到累加器 1 2MOVX A,Ri 外部 RAM(8 地址)传送到累加器 1 2MOVX A,DPTR 外部 RAM(16 地址)传送到累加器
3、 1 2MOVX Ri,A 累加器传送到外部 RAM(8 地址) 1 2MOVX DPTR,A 累加器传送到外部 RAM(16 地址) 1 2PUSH direct 直接地址压入堆栈 2 2POP direct 直接地址弹出堆栈 2 2XCH A,Rn 寄存器和累加器交换 1 1XCH A, direct 直接地址和累加器交换 2 1XCH A, Ri 间接 RAM 和累加器交换 1 1XCHD A, Ri 间接 RAM 和累加器交换低 4 位字节 1 1(算术运算类指令)INC A 累加器加 1 1 1INC Rn 寄存器加 1 1 1INC direct 直接地址加 1 2 1INC Ri
4、 间接 RAM 加 1 1 1INC DPTR 数据指针加 1 1 2DEC A 累加器减 1 1 1DEC Rn 寄存器减 1 1 1DEC direct 直接地址减 1 2 2DEC Ri 间接 RAM 减 1 1 1MUL AB 累加器和 B 寄存器相乘 1 4DIV AB 累加器除以 B 寄存器 1 4DA A 累加器十进制调整 1 1ADD A,Rn 寄存器与累加器求和 1 1ADD A,direct 直接地址与累加器求和 2 1ADD A,Ri 间接 RAM 与累加器求和 1 1ADD A,#data 立即数与累加器求和 2 1ADDC A,Rn 寄存器与累加器求和(带进位) 1
5、1ADDC A,direct 直接地址与累加器求和(带进位) 2 1ADDC A,Ri 间接 RAM 与累加器求和(带进位) 1 1ADDC A,#data 立即数与累加器求和(带进位) 2 1SUBB A,Rn 累加器减去寄存器(带借位) 1 1SUBB A,direct 累加器减去直接地址(带借位) 2 1SUBB A,Ri 累加器减去间接 RAM(带借位) 1 1SUBB A,#data 累加器减去立即数(带借位) 2 1(逻辑运算类指令)ANL A,Rn 寄存器“与”到累加器 1 1ANL A,direct 直接地址“与”到累加器 2 1ANL A,Ri 间接 RAM“与”到累加器 1
6、 1ANL A,#data 立即数“与”到累加器 2 1ANL direct,A 累加器“与”到直接地址 2 1ANL direct, #data 立即数“与”到直接地址 3 2ORL A,Rn 寄存器“或”到累加器 1 2ORL A,direct 直接地址“或”到累加器 2 1ORL A,Ri 间接 RAM“或”到累加器 1 1ORL A,#data 立即数“或”到累加器 2 1ORL direct,A 累加器“或”到直接地址 2 1ORL direct, #data 立即数“或”到直接地址 3 1XRL A,Rn 寄存器“异或”到累加器 1 2XRL A,direct 直接地址“异或”到累
7、加器 2 1XRL A,Ri 间接 RAM“异或”到累加器 1 1XRL A,#data 立即数“异或”到累加器 2 1XRL direct,A 累加器“异或”到直接地址 2 1XRL direct, #data 立即数“异或”到直接地址 3 1CLR A 累加器清零 1 2CPL A 累加器求反 1 1RL A 累加器循环左移 1 1RLC A 带进位累加器循环左移 1 1RR A 累加器循环右移 1 1RRC A 带进位累加器循环右移 1 1SWAP A 累加器高、低 4 位交换 1 1(控制转移类指令) JMP A+DPTR 相对 DPTR 的无条件间接转移 1 2JZ rel 累加器为
8、 0 则转移 2 2JNZ rel 累加器为 1 则转移 2 2CJNE A,direct,rel 比较直接地址和累加器,不相等转移 3 2CJNE A,#data,rel 比较立即数和累加器,不相等转移 3 2CJNE Rn,#data,rel 比较寄存器和立即数,不相等转移 2 2CJNE Ri,#data,rel 比较立即数和间接 RAM,不相等转移 3 2DJNZ Rn,rel 寄存器减 1,不为 0 则转移 3 2DJNZ direct,rel 直接地址减 1,不为 0 则转移 3 2NOP 空操作,用于短暂延时 1 1ACALL add11 绝对调用子程序 2 2LCALL add
9、16 长调用子程序 3 2RET 从子程序返回 1 2RETI 从中断服务子程序返回 1 2AJMP add11 无条件绝对转移 2 2LJMP add16 无条件长转移 3 2SJMP rel 无条件相对转移 2 2(布尔指令) CLR C 清进位位 1 1CLR bit 清直接寻址位 2 1SETB C 置位进位位 1 1SETB bit 置位直接寻址位 2 1CPL C 取反进位位 1 1CPL bit 取反直接寻址位 2 1ANL C,bit 直接寻址位“与”到进位位 2 2ANL C,/bit 直接寻址位的反码“与”到进位位 2 2ORL C,bit 直接寻址位“或”到进位位 2 2ORL C,/bit 直接寻址位的反码“或”到进位位 2 2MOV C,bit 直接寻址位传送到进位位 2 1MOV bit, C 进位位位传送到直接寻址 2 2JC rel 如果进位位为 1 则转移 2 2JNC rel 如果进位位为 0 则转移 2 2JB bit,rel 如果直接寻址位为 1 则转移 3 2JNB bit,rel 如果直接寻址位为 0 则转移 3 2JBC bit,rel 直接寻址位为 1 则转移并清除该位 2 2