首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

MCS-51指令详解-5

MCS-51指令详解-5

逻辑运算和移位指令共有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中。
返回列表