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

跟我学单片机——第二十三课 逻辑运算及移位指令分析

跟我学单片机——第二十三课 逻辑运算及移位指令分析

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