《51单片机指令表.docx》由会员分享,可在线阅读,更多相关《51单片机指令表.docx(6页珍藏版)》请在三一办公上搜索。
1、51单片机指令表此表主要是为了方便大家查阅每条指令的作用,写法以及字节数和周期数,建议大家保存为书签。 助记符 指令说明 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOVC MOVC MOVX MOVX MOVX MOVX PUSH POP XCH A,Rn A,direct A,Ri A,#data Rn,A Rn,direct Rn,#data direct,Rn 寄存器传送到累加器 直接地址传送到累加器 累加器传送到外部RAM(8 地址) 立即数传送到累加器 累加器传送到寄存器 直接地址传送到寄存器 累
2、加器传送到直接地址 寄存器传送到直接地址 1 2 1 2 1 2 2 2 3 2 2 3 1 2 2 3 1 1 1 1 1 1 2 2 1 1 1 1 1 1 2 1 1 2 1 2 2 2 1 2 1 2 2 2 2 2 2 2 2 1 字节数 周期数 direct,direct 直接地址传送到直接地址 direct,A direct,Ri direct,#data Ri,A Ri,direct Ri,#data DPTR,#data16 A,A+DPTR A,A+PC A,Ri A,DPTR Ri,A DPTR,A direct direct A,Rn 累加器传送到直接地址 间接RAM
3、传送到直接地址 立即数传送到直接地址 直接地址传送到直接地址 直接地址传送到间接RAM 立即数传送到间接RAM 16 位常数加载到数据指针 代码字节传送到累加器 代码字节传送到累加器 外部RAM(8 地址)传送到累加器 外部RAM(16 地址)传送到累加器 累加器传送到外部RAM(8 地址) 累加器传送到外部RAM(16 地址) 直接地址压入堆栈 直接地址弹出堆栈 寄存器和累加器交换 XCH XCH XCHD A, direct A, Ri A, Ri 直接地址和累加器交换 间接RAM 和累加器交换 间接RAM 和累加器交换低4 位字节 (算术运算类指令) 2 1 1 1 1 1 INC IN
4、C INC INC INC DEC DEC DEC DEC MUL DIV DA ADD ADD ADD ADD ADDC ADDC ADDC ADDC SUBB SUBB SUBB SUBB A Rn direct Ri DPTR A Rn direct Ri AB AB A A,Rn A,direct A,Ri A,#data A,Rn A,direct A,Ri A,#data A,Rn A,direct A,Ri A,#data 累加器加1 寄存器加1 直接地址加1 间接RAM 加1 数据指针加1 累加器减1 寄存器减1 直接地址减1 间接RAM 减1 累加器和B 寄存器相乘 累加器除
5、以B 寄存器 累加器十进制调整 寄存器与累加器求和 直接地址与累加器求和 间接RAM 与累加器求和 立即数与累加器求和 寄存器与累加器求和(带进位) 直接地址与累加器求和(带进位) 间接RAM 与累加器求和(带进位) 立即数与累加器求和(带进位) 累加器减去寄存器(带借位) 累加器减去直接地址(带借位) 累加器减去间接RAM(带借位) 累加器减去立即数(带借位) (逻辑运算类指令) 1 1 2 1 1 1 1 2 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 2 1 1 1 1 2 1 1 2 1 4 4 1 1 1 1 1 1 1 1 1 1 1 1 1 ANL ANL ANL
6、 ANL ANL ANL ORL ORL ORL ORL ORL ORL XRL XRL XRL XRL XRL XRL CLR CPL RL RLC RR RRC SWAP A,Rn A,direct A,Ri A,#data direct,A 寄存器“与”到累加器 直接地址“与”到累加器 间接RAM“与”到累加器 立即数“与”到累加器 累加器“与”到直接地址 1 2 1 2 2 3 1 2 1 2 2 3 1 2 1 2 2 3 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 1 direct, #data 立即数
7、“与”到直接地址 A,Rn A,direct A,Ri A,#data direct,A 寄存器“或”到累加器 直接地址“或”到累加器 间接RAM“或”到累加器 立即数“或”到累加器 累加器“或”到直接地址 direct, #data 立即数“或”到直接地址 A,Rn A,direct A,Ri A,#data direct,A 寄存器“异或”到累加器 直接地址“异或”到累加器 间接RAM“异或”到累加器 立即数“异或”到累加器 累加器“异或”到直接地址 direct, #data 立即数“异或”到直接地址 A A A A A A A 累加器清零 累加器求反 累加器循环左移 带进位累加器循环左
8、移 累加器循环右移 带进位累加器循环右移 累加器高、低4 位交换 (控制转移类指令) JMP JZ JNZ A+DPTR rel rel 相对DPTR 的无条件间接转移 累加器为0 则转移 累加器为1 则转移 1 2 2 2 2 2 CJNE CJNE CJNE CJNE DJNZ DJNZ NOP ACALL LCALL RET RETI AJMP LJMP SJMP A,direct,rel A,#data,rel Rn,#data,rel 比较直接地址和累加器,不相等转移 比较立即数和累加器,不相等转移 比较寄存器和立即数,不相等转移 3 3 2 3 3 3 1 2 3 1 1 2 3
9、2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 Ri,#data,rel 比较立即数和间接RAM,不相等转移 Rn,rel direct,rel add11 add16 add11 add16 rel 寄存器减1,不为0 则转移 直接地址减1,不为0 则转移 空操作,用于短暂延时 绝对调用子程序 长调用子程序 从子程序返回 从中断服务子程序返回 无条件绝对转移 无条件长转移 无条件相对转移 (布尔指令) CLR CLR SETB SETB CPL CPL ANL ANL ORL ORL MOV MOV JC JNC C bit C bit C bit C,bit C,/bit C,
10、bit C,/bit C,bit bit, C rel rel 清进位位 清直接寻址位 置位进位位 置位直接寻址位 取反进位位 取反直接寻址位 直接寻址位“与”到进位位 直接寻址位的反码“与”到进位位 直接寻址位“或”到进位位 直接寻址位的反码“或”到进位位 直接寻址位传送到进位位 进位位位传送到直接寻址 如果进位位为1 则转移 如果进位位为0 则转移 1 2 1 2 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 1 2 2 2 JB JNB JBC bit,rel bit,rel bit,rel 如果直接寻址位为1 则转移 如果直接寻址位为0 则转移 直接寻
11、址位为1 则转移并清除该位 3 3 2 2 2 2 ORG DB DW EQU DATA XDATA BIT END 指明程序的开始位置 定义数据表 定义16 位的地址表 给一个表达式或一个字符串起名 给一个8 位的内部RAM 起名 给一个8 位的外部RAM 起名 给一个可位寻址的位单元起名 指出源程序到此为止 Rn Ri Ri #data8 #data16 addr16 addr11 Rel Bit Direct $ 工作寄存器R0-R7 工作寄存器R0 和R1 间接寻址的8 位RAM 单元地址 8 位常数 16 位常数 16 位目标地址,能转移或调用到64KROM 的任何地方 11 位目标地址,在下条指令的2K 范围内转移或调用 8 位偏移量,用于SJMP 和所有条件转移指令,范围-128+127 片内RAM 中的可寻址位和SFR 的可寻址位 直接地址,范围片内RAM 单元和80H-FFH 指本条指令的起始位置