赞助论坛
  • 5640阅读
  • 0回复

MCS-51逻辑运算及移位指令 [复制链接]

楼层直达
admin  

级别: Admin
发帖
4665
精华
9
金币
1066
威望
33
贡献
187
好评
97
注册
2008-01-05
楼主    admin 发表于: 2008-01-17 00:34:38 
逻辑运算和移位指令共有25条,有与、或、异或、求反、左右移位、清0等逻辑操作,有直接、寄存器和寄存器间址等寻址方式。这类指令一般不影响程序状态字(PSW)标志。

  [1]. 循环移位指令(4条)
  这4条指令的作用是将累加器中的内容循环左或右移一位,后两条指令是连同进位位CY一起移位。

    RL A   ;累加器A中的内容左移一位
    RR A   ;累加器A中的内容右移一位
    RLC A   ;累加器A中的内容连同进位位CY左移一位
    RRC A   ;累加器A中的内容连同进位位CY右移一位

  [2]. 累加器半字节交换指令(1条)
  这条指令是将累加器中的内容高低半字节互换,这在上一节中内容已有介绍。

    SWAP A ; 累加器中的内容高低半字节互换

  [3]. 求反指令(1条)
  这条指令将累加器中的内容按位取反。

    CPL A   ; 累加器中的内容按位取反

  [4]. 清零指令(1条)
  这条指令将累加器中的内容清0。

    CLR A   ; 0→(A),累加器中的内容清0

  [5]. 逻辑与操作指令(6条)
  这组指令的作用是将两个单元中的内容执行逻辑与操作。如果直接地址是I/O地址,则为“读—修改—写”操作。

    ANL A,data   ;累加器A中的内容和直接地址单元中的内容执行与逻辑操作。结果存在寄存器A中。
    ANL data,#data ;直接地址单元中的内容和立即数执行与逻辑操作。结果存在直接地址单元中。
    ANL A,#data   ;累加器A的内容和立即数执行与逻辑操作。结果存在累加器A中。
    ANL A,Rn     ;累加器A的内容和寄存器Rn中的内容执行与逻辑操作。结果存在累加器A中。
    ANL data,A   ;直接地址单元中的内容和累加器A的内容执行与逻辑操作。结果存在直接地址单元中。
    ANL A,@Ri   ;累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行与逻辑操作。结果存在累加器A中。

  [6]. 逻辑或操作指令(6条)
  这组指令的作用是将两个单元中的内容执行逻辑或操作。如果直接地址是I/O地址,则为“读—修改—写”操作。

    ORL A,data   ;累加器A中的内容和直接地址单元中的内容执行逻辑或操作。结果存在寄存器A中。
    ORL data,#data ;直接地址单元中的内容和立即数执行逻辑或操作。结果存在直接地址单元中。
    ORL A,#data   ;累加器A的内容和立即数执行逻辑或操作。结果存在累加器A中。
    ORL A,Rn     ;累加器A的内容和寄存器Rn中的内容执行逻辑或操作。结果存在累加器A中。
    ORL data,A   ;直接地址单元中的内容和累加器A的内容执行逻辑或操作。结果存在直接地址单元中。
    ORL A,@Ri   ;累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行逻辑或操作。结果存在累加器A中。

  [7]. 逻辑异或操作指令(6条)
  这组指令的作用是将两个单元中的内容执行逻辑异或操作。如果直接地址是I/O地址,则为“读—修改—写”操作。

    XRL A,data   ;累加器A中的内容和直接地址单元中的内容执行逻辑异或操作。结果存在寄存器A中。
    XRL data,#data ;直接地址单元中的内容和立即数执行逻辑异或操作。结果存在直接地址单元中。
    XRL A,#data   ;累加器A的内容和立即数执行逻辑异或操作。结果存在累加器A中。
    XRL A,Rn     ;累加器A的内容和寄存器Rn中的内容执行逻辑异或操作。结果存在累加器A中。
    XRL data,A   ;直接地址单元中的内容和累加器A的内容执行逻辑异或操作。结果存在直接地址单元中。
    XRL A,@Ri   ;累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行逻辑异或操作。结果存在累加器A中。