分享

51单片机指令表

 wwwijhyt图书馆 2014-04-30

51单片机指令表  

(数据传递类指令)
  MOV A,Rn 寄存器传送到累加器 1 1
  MOV A,direct 直接地址传送到累加器 2 1
  MOV A,@Ri 将Ri所指示的内部RAM单元中的数据传到A 1 1
  MOV A,#data 立即数传送到累加器 2 1
  MOV Rn,A 累加器传送到寄存器 1 1
  MOV Rn,direct 直接地址传送到寄存器 2 2
  MOV Rn,#data 将立即数传送到Rn 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 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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多