当前位置:首页 > MCS-51单片机指令表(打印版) - 图文
附录1 MCS-51单片机指令表 数据传送类指令 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOVC MOVC MOVX MOVX MOV MOVX MOVX PUSH POP XCH XCH XCH XCHD 指令格式 A,Rn A,direct A,@Ri A,#data Rn,A Rn,direct Rn,#data direct,A direct,Rn direct2,direct1 direct,@Ri direct,#data @Ri,A @Ri,direct @Ri,#data A,@A+DPTR A,@A+PC A,@Ri A,@DPTR DPTR,#data16 @Ri,A @DPTR,A direct direct A,Rn A, direct A, @Ri A, @Ri 指令功能 Rn内容传送到A 直接地址内容传送到A 间接RAM单元内容送A 立即数送到A A内容送到Rn 直接地址内容传送到Rn 立即数传送到Rn A传送到直接地址 Rn传送到直接地址 直接地址传送到直接地址 间接RAM 内容传送到直接地址 立即数传送到直接地址 A内容送间接RAM单元 直接地址传送到间接RAM 立即数传送到间接RAM 代码字节送A(DPTR为基址) 代码字节送A(PC为基址) 外部RAM(8 地址)内容传送到A 外部RAM内容(16 地址)传送到A 16 位常数加载到数据指针 A内容传送到外部RAM(8 地址) A内容传送到外部RAM(16 地址) 直接地址压入堆栈 直接地址弹出堆栈 Rn内容和A交换 直接地址和A交换 间接RAM内容A交换 间接RAM 内容和A交换低4 位字节 字节 周期 1 1 2 1 1 1 2 1 1 1 2 2 2 1 2 1 2 2 3 2 2 2 3 2 1 1 2 2 2 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 2 2 2 2 1 1 2 1 1 1 1 1 算术运算类指令 序号 1 2 3 4 5 6 7 8 9 10 11 12 INC INC INC INC INC DEC DEC DEC DEC MUL DIV DA 指令格式 A Rn direct @Ri DPTR A Rn direct @Ri AB AB A 指令功能 A加1 Rn加1 直接地址加1 间接RAM 加1 数据指针加1 A减1 Rn减1 直接地址减1 间接RAM 减1 A和B Rn相乘 A除以B Rn A十进制调整 字节 周期 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 4 1 4 1 1 13 14 15 16 17 18 19 20 21 22 23 24 ADD ADD ADD ADD ADDC ADDC ADDC ADDC SUBB SUBB SUBB SUBB A,Rn A,direct A,@Ri A,#data A,Rn A,direct A,@Ri A,#data A,Rn A,direct A,@Ri A,#data Rn与A求和 直接地址与A求和 间接RAM 与A求和 立即数与A求和 Rn与A求和(带进位) 直接地址与A求和(带进位) 间接RAM 与A求和(带进位) 立即数与A求和(带进位) A减去Rn(带借位) A减去直接地址(带借位) A减去间接RAM(带借位) A减去立即数(带借位) 1 2 1 2 1 2 1 2 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 逻辑运算类指令 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 指令格式 ANL ANL ANL ANL ANL ANL ORL ORL ORLi 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 direct, #data A,Rn A,direct A,@R A,#data direct,A direct, #data A,Rn A,direct A,@Ri A,#data direct,A direct, #data A A A A A A A 指令功能 Rn“与”到A 直接地址“与”到A 间接RAM“与”到A 立即数“与”到A A“与”到直接地址 立即数“与”到直接地址 Rn“或”到A 直接地址“或”到A 间接RAM“或”到A 立即数“或”到A A“或”到直接地址 立即数“或”到直接地址 Rn“异或”到A 直接地址“异或”到A 间接RAM“异或”到A 立即数“异或”到A A“异或”到直接地址 立即数“异或”到直接地址 A清零 A求反 A循环左移 带进位A循环左移 A循环右移 带进位A循环右移 A高、低4 位交换 字节 周期 1 1 2 1 1 1 2 1 2 1 3 2 1 2 2 1 1 1 2 1 2 1 3 2 1 2 2 1 1 1 2 1 2 1 3 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 控制转移类指令 序号 1 2 3 4 指令格式 JMP JZ JNZ CJNE @A+DPTR rel rel A,direct,rel 指令功能 相对DPTR 的无条件间接转移 A为0 则转移 A为1 则转移 比较直接地址和A,不相等转移 字节 周期 1 2 2 2 2 2 3 2 5 6 7 8 9 10 11 12 13 14 15 16 17 CJNE CJNE CJNE DJNZ DJNZ NOP ACALL LCALL RET RETI AJMP LJMP SJMP A,#data,rel Rn,#data,rel @Ri,#data,rel Rn,rel direct,rel add11 add16 add11 add16 rel 比较立即数和A,不相等转移 比较Rn和立即数,不相等转移 比较立即数和间接RAM,不相等转移 Rn减1,不为0 则转移 直接地址减1,不为0 则转移 空操作,用于短暂延时 绝对调用子程序 长调用子程序 从子程序返回 从中断服务子程序返回 无条件绝对转移 无条件长转移 无条件相对转移 3 3 3 2 3 1 2 3 1 1 2 3 2 2 2 2 2 2 1 2 2 2 2 2 2 2 位操作指令 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 指令格式 CLR CLR SETB SETB CPL CPL ANL ANL ORL ORL MOV MOV JC JNC JB JNB JBC C bit C bit C bit C,bit C,/bit C,bit C,/bit C,bit bit, C rel rel bit,rel bit,rel bit,rel 指令功能 清进位位 清直接寻址位 置位进位位 置位直接寻址位 取反进位位 取反直接寻址位 直接寻址位“与”到进位位 直接寻址位的反码“与”到进位位 直接寻址位“或”到进位位 直接寻址位的反码“或”到进位位 直接寻址位传送到进位位 进位位位传送到直接寻址 如果进位位为1 则转移 如果进位位为0 则转移 如果直接寻址位为1 则转移 如果直接寻址位为0 则转移 直接寻址位为1 则转移并清除该位 字节 周期 1 1 2 1 1 1 2 1 1 1 2 1 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 3 2 3 2 3 2 伪指令 ORG DB DW EQU DATA XDATA BIT END $ 指明程序的开始位置 定义数据表 定义16 位的地址表 给一个表达式或一个字符串起名 给一个8 位的内部RAM 起名 给一个8 位的外部RAM 起名 给一个可位寻址的位单元起名 指出源程序到此为止 指本条指令的起始位置 Rn Ri @Ri #data8 addr16 addr11 Rel Bit Direct 指令中的符号标识 工作寄存器R0-R7 工作寄存器 R0 和R1 间接寻址的8 位RAM 单元地址(00H-FFH) 8 位常数 16 位目标地址,范围64KB 11 位目标地址,范围2KB 8 位偏移量,范围-128~+127 片内RAM 中的可寻址位和SFR 的可寻址位 直接地址,范围片内RAM 单元(00H-7FH)和80H-FFH 数据存储器
数据存储器也称为随机存取数据存储器。数据存储器分为内部数据存储和外部数据
存储。MCS-51内部RAM有128或256个字节的用户数据存储(不同的型号有分别),片外最多可扩展64KB的RAM,构成两个地址空间,访问片内RAM用“MOV”指令,访问片外RAM用“MOVX”指令。它们是用于存放执行的中间结果和过程数据的。MCS-51的数据存储器均可读写,部分单元还可以位寻址。
MCS-51单片机的内部数据存储器在物理上和逻辑上都分为两个地址空间,即:
数据存储器空间(低128单元);
特殊功能寄存器空间(高128单元);
这两个空间是相连的,从用户角度而言,低128单元才是真正的数据存储器。下面
我们就来详细的与大家讲解一下: 低128单元:
片内数据存储器为8位地址,所以最大可寻址的范围为256个单元地址,对片外数
据存储器采用间接寻址方式,R0、R1和DPTR都可以做为间接寻址寄存器,R0、R1是8位的寄存器,即R0、R1的寻址范围最大为256个单元,而DPTR是16位地址指针,寻址范围就可达到64KB。也就是说在寻址片外数据存储器时,寻址范围超过了256B,就不能用R0、R1做
为间接寻址寄存器,而必须用DPTR寄存器做为间接寻址寄存器。
从上图中我们可以看到,8051单片机片内RAM共有256个单元(00H-FFH),这256个单元共分为两部分。其一是地址从00H—7FH单元(共128个字节)为用户数据RAM。从80H—FFH地址单元(也是128个字节)为特殊寄存器(SFR)单元。从下图中可清楚地看出它们的结构分布。
共分享92篇相关文档