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










