欢迎光临MCUWAY! 本站网名:单片机之路  永久域名:www.mcuway.com

设为首页

加入收藏

电子基础 初学MCU 单片机类型 MCU程序 MCU应用 设计软件 测控电路 技术论坛
 您现在的位置: 单片机之路 >> 初学MCU >> 单片机语言 >> 文章正文

逻辑运算指令

1. 逻辑运算指令的一般性说明

* 与、或、异或的逻辑运算指令可以Acc或direct为目标。但是以direct为目标时,另一操作数只能是Acc或立即数。

* 与、或、异或是对位逻辑运算。

* 其他逻辑运算指令只对Acc操作。

* 小循环不影响Cy,大循环Cy在循环圈内。

* 除了RLC和RRC,逻辑运算指令不影响P以外的标志位。


2. 与、或、异或的特殊用途

* 用ANL指令屏蔽指定位

例:ANL A,#0FH ;屏蔽高4位

* 用ORL指令将指定位置1

例:ORL A,#0FH ;将低4位置1

* 用ORL指令拼接一个字节

例:ANL A,#0FH

ANL B,#0F0H

ORL A,B

* 用XRL指令将指定位取反

例:XRL A,#55H ;将D0、D2、D4、D6等位取反

表 3-4 逻辑运算指令

操作码

目标操作数

参与运算的操作数

说 明

ANL

A

Rn; direct; @Ri; # data

逻辑与

direct

A; # data

ORL

A

Rn; direct; @Ri; # data

逻辑或

direct

A; # data

XRL

A

Rn; direct; @Ri; # data

逻辑异或

direct

A; # data

CPL A

累加器(A)取反

CLR A

累加器(A)清零

点此在新窗口浏览图片

RL

A

(A)左小循环,不影响Cy

点此在新窗口浏览图片

RLC

A

← (A)左大循环

点此在新窗口浏览图片

RR

A

(A)右小循环,不影响Cy

点此在新窗口浏览图片

RRC

A

→ (A)右大循环

3. 循环移位逻辑运算指令的应用

* 乘除法运算

左移=无符号数乘2,右移=有符号数除2。

例:A×B,积存(BA)

算法:乘数在(A),积在(R2)(A)。

1) (A)右移一位;

2) (A)移出的一位若为1,则(R2)+被乘数(B);

3) 积(R2)(A)双字节右移一位;第2、3步循环8次。

为简化,假定为4位,循环4次。(A)=1011, (B)=1111


MOV R2,#0

MOV R3,#8

CLR C

RRC A

LP:XCH A,R2

JNC RRR

ADD A,B

RRR:RRC A

XCH A,R2 ;①

RRC A ;②

DJNZ R3,LP

MOV B,R2

下表第一列为:循环次数-执行点

其余各列为逻辑运算指令执行点的操作结果。

循环

R2

C

A

C

初态

0000

0101

1

1-①

0111

1

0101

1-②

0111

1010

1

2-①

1011

0

1010

2-②

1011

0101

0

3-①

0101

1

0101

3-②

0101

1010

1

4-①

1010

1

1010

4-②

1010

0101

0

逻辑尺以二进制数表示二值逻辑序列,逐位移出,并据此行逻辑控制。

普通文章28课:单片机音乐汇编程序设计
普通文章27课:单片机的一些基本概念
普通文章26课:单片机矩阵式键盘接口技术
普通文章如何成为杰出的电子工程师
普通文章51单片机的指令系统及试验
普通文章单片机的外部结构-引脚功能
普通文章如何快速入门单片机
普通文章51单片机的时钟及复位
普通文章一些初学网友对51系列的选型的常见问
普通文章单片机设计心得
普通文章了解单片机的好文章
普通文章单片机复位电路
普通文章单片机最小系统
普通文章单片机开发工具
普通文章51单片机原理介绍
普通文章两种单片机io扩展的方法
普通文章51单片机的最小化应用系统
普通文章串口引脚定义
普通文章AT89c51与AT89S51单片机的区别
普通文章单片机译码器的作用和工作原理
普通文章了解看门狗
普通文章了解单片机的一些结构
普通文章单片机驱动LED中上拉电阻的问题
普通文章单板机监控程序
普通文章SCB-1单板机及其使用

  • 上一篇文章:
  • 下一篇文章:
  • 更多精彩内容>>>

    普通文章电流单位
    普通文章功率单位
    普通文章什么是达林顿管?
    普通文章晶闸管的作用与原理

    学习单片机的必经之路——单片机之路,永久域名:www.mcuway.com