Skip to content

4.7 逻辑运算与实现

本节介绍运算器中除算术运算外的另一大类基本运算——逻辑运算。

核心概念

1. 逻辑运算的特点

  • 按位操作:逻辑运算是按位独立进行的,一个位的运算结果不影响其他位。
  • 无进位/借位:与算术运算不同,逻辑运算没有进位或借位的概念。

2. 基本逻辑运算

设有两个操作数 X=XnXn1X0Y=YnYn1Y0

逻辑非 (NOT)

  • 操作:对一个操作数的每一位取反。
  • 公式:Zi=Xi

逻辑乘 (AND)

  • 操作:对两个操作数的对应位执行"与"操作。
  • 公式:Zi=XiYi
  • 应用:常用于按位清零提取一个数的特定位(通过与一个"屏蔽字"进行与操作)。

示例:提取一个字节的低4位

  10110101
& 00001111  (屏蔽字)
----------
  00000101

逻辑加 (OR)

  • 操作:对两个操作数的对应位执行"或"操作。
  • 公式:Zi=XiYi
  • 应用:常用于按位置1

示例:将某些位置1

  10110101
| 00001111
----------
  10111111

逻辑异或 (XOR)

  • 操作:对两个操作数的对应位执行"异或"操作(相同为0,不同为1)。
  • 公式:Zi=XiYi
  • 应用:
    • 按位取反(与全1的数异或)
    • 判断两数是否相等(若相等,结果为0)
    • 数据加密

示例:按位取反

  10110101
⊕ 11111111
----------
  01001010

3. 实现

  • 这些逻辑运算都可以在算术逻辑单元 (ALU) 中实现。ALU 通过控制信号选择执行算术操作还是逻辑操作。
  • 在执行逻辑运算时,ALU 内部的进位链会被屏蔽禁用

易考点与难点

易考点:

  • 掌握四种基本逻辑运算的规则。
  • 理解逻辑运算的应用场景,如如何使用 AND 运算进行"屏蔽"或"清零",以及如何使用 OR 运算进行"置位"。这是汇编语言编程中的常用技巧,也常在考题中出现。

难点:本节内容相对简单,没有特别的难点。重点在于理解逻辑运算和算术运算的根本区别(是否按位独立、有无进位)。