logo资料库

51单片机指令速查表.pdf

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
51单片机指令表 助记符 指令说明 字节数 周期数 (数据传递类指令) MOV A,Rn 寄存器传送到累加器 MOV A,direct 直接地址传送到累加器 MOV A,@Ri 累加器传送到外部 RAM(8 地址 ) MOV A,#data 立即数传送到累加器 MOV Rn, A 累加器传送到寄存器 MOV Rn, direct 直接地址传送到寄存器 MOV Rn, #data 累加器传送到直接地址 MOV direct , Rn 寄存器传送到直接地址 MOV direct , direct 直接地址传送到直接地址 MOV direct , A 累加器传送到直接地址 MOV direct , @Ri 间接 RAM 传送到直接地址 MOV direct , #data 立即数传送到直接地址 MOV @Ri, A 直接地址传送到直接地址 MOV @Ri, direct 直接地址传送到间接 RAM MOV @Ri, #data 立即数传送到间接 RAM MOV DPTR, #data16 16 位常数加载到数据指针 MOVC A,@A+DPTR 代码字节传送到累加器 MOVC A,@A+PC 代码字节传送到累加器 MOVX A,@Ri 外部 RAM(8 地址 ) 传送到累加器 MOVX A,@DPTR 外部 RAM(16 地址 ) 传送到累加器 MOVX @Ri, A 累加器传送到外部 RAM(8 地址 ) MOVX @DPTR, A 累加器传送到外部 RAM(16 地址 ) PUSH direct 直接地址压入堆栈 POP direct 直接地址弹出堆栈 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 2 1 1 2 1 2 2 2 1 2 1 2 2 2 2 2 2 2 2
XCH A,Rn 寄存器和累加器交换 XCH A, direct 直接地址和累加器交换 XCH A, @Ri 间接 RAM 和累加器交换 XCHD A, @Ri 间接 RAM 和累加器交换低 4 位字节 ( 算术运算类指令 ) INC A INC Rn 累加器加 1 寄存器加 1 INC direct 直接地址加 1 INC @Ri 间接 RAM 加 1 INC DPTR 数据指针加 1 DEC A DEC Rn 累加器减 1 寄存器减 1 DEC direct 直接地址减 1 DEC @Ri 间接 RAM 减 1 MUL AB 累加器和 B 寄存器相乘 DIV AB 累加器除以 B 寄存器 DA A 累加器十进制调整 ADD A,Rn 寄存器与累加器求和 ADD A,direct 直接地址与累加器求和 ADD A,@Ri 间接 RAM 与累加器求和 ADD A,#data 立即数与累加器求和 ADDC A,Rn 寄存器与累加器求和 ( 带进位 ) ADDC A,direct 直接地址与累加器求和 ( 带进位 ) ADDC A,@Ri 间接 RAM 与累加器求和 ( 带进位 ) ADDC A,#data 立即数与累加器求和 ( 带进位 ) SUBB A,Rn 累加器减去寄存器 ( 带借位 ) SUBB A,direct 累加器减去直接地址 ( 带借位 ) SUBB A,@Ri 累加器减去间接 RAM(带借位 ) SUBB A,#data 累加器减去立即数 ( 带借位 ) 1 2 1 1 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 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 A,Rn 寄存器“与”到累加器 ANL A,direct 直接地址“与”到累加器 ANL A,@Ri 间接 RAM“与”到累加器 ANL A,#data 立即数“与”到累加器 ANL direct,A 累加器“与”到直接地址 ANL direct, #data 立即数“与”到直接地址 ORL A,Rn 寄存器“或”到累加器 ORL A,direct 直接地址“或”到累加器 ORL A,@Ri 间接 RAM“或”到累加器 ORL A,#data 立即数“或”到累加器 ORL direct,A 累加器“或”到直接地址 ORL direct, #data 立即数“或”到直接地址 XRL A,Rn 寄存器“异或”到累加器 XRL A,direct 直接地址“异或”到累加器 XRL A,@Ri 间接 RAM“异或”到累加器 XRL A,#data 立即数“异或”到累加器 XRL direct,A 累加器“异或”到直接地址 XRL direct, #data 立即数“异或”到直接地址 CLR CPL RL RLC RR RRC SWAP A A A A A A A 累加器清零 累加器求反 累加器循环左移 带进位累加器循环左移 累加器循环右移 带进位累加器循环右移 累加器高、低 4 位交换 ( 控制转移类指令 ) JMP @A+DPTR 相对 DPTR 的无条件间接转移 JZ rel 累加器为 0 则转移 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 2 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 2 2
JNZ rel 累加器为 1 则转移 CJNE A,direct,rel 比较直接地址和累加器 , 不相等转移 CJNE A,#data,rel 比较立即数和累加器 , 不相等转移 CJNE Rn,#data,rel 比较寄存器和立即数 , 不相等转移 CJNE @Ri,#data,rel 比较立即数和间接 RAM,不相等转移 DJNZ Rn,rel 寄存器减 1, 不为 0 则转移 DJNZ direct,rel 直接地址减 1, 不为 0 则转移 NOP 空操作 , 用于短暂延时 ACALL add11 绝对调用子程序 LCALL add16 长调用子程序 RET RETI 从子程序返回 从中断服务子程序返回 AJMP add11 无条件绝对转移 LJMP add16 无条件长转移 SJMP rel 无条件相对转移 ( 布尔指令 ) CLR CLR C bit SETB C SETB bit CPL CPL C bit 清进位位 清直接寻址位 置位进位位 置位直接寻址位 取反进位位 取反直接寻址位 ANL C,bit 直接寻址位“与”到进位位 ANL C,/bit 直接寻址位的反码“与”到进位位 ORL C,bit 直接寻址位“或”到进位位 ORL C,/bit 直接寻址位的反码“或”到进位位 MOV C,bit 直接寻址位传送到进位位 MOV bit, C 进位位位传送到直接寻址 JC rel 如果进位位为 1 则转移 2 3 3 2 3 3 3 1 2 3 1 1 2 3 2 1 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 1 2 2
JNC rel 如果进位位为 0 则转移 JB bit , rel 如果直接寻址位为 1 则转移 JNB bit , rel 如果直接寻址位为 0 则转移 JBC bit , rel 直接寻址位为 1 则转移并清除该位 2 3 3 2 2 2 2 2 ORG DB DW EQU DATA XDATA BIT END Rn Ri @Ri #data8 #data16 addr16 addr11 Rel Bit Direct $ (伪指令) 指明程序的开始位置 定义数据表 定义 16 位的地址表 给一个表达式或一个字符串起名 给一个 8 位的内部 RAM 起名 给一个 8 位的外部 RAM 起名 给一个可位寻址的位单元起名 指出源程序到此为止 (指令中的符号标识) 工作寄存器 R0-R7 工作寄存器 R0 和 R1 间接寻址的 8 位 RAM 单元地址( 00H-FFH) 8 位常数 16 位常数 16 位目标地址,能转移或调用到 64KROM 的任何地方 11 位目标地址,在下条指令的 2K 范围内转移或调用 8 位偏移量,用于 SJMP 和所有条件转移指令,范围 -128 ~ +127 片内 RAM 中的可寻址位和 SFR 的可寻址位 直接地址,范围片内 RAM 单元( 00H-7FH)和 80H-FFH 指本条指令的起始位置
分享到:
收藏