4.7 逻辑运算与实现
本节介绍运算器中除算术运算外的另一大类基本运算——逻辑运算。
核心概念
1. 逻辑运算的特点
- 按位操作:逻辑运算是按位独立进行的,一个位的运算结果不影响其他位。
- 无进位/借位:与算术运算不同,逻辑运算没有进位或借位的概念。
2. 基本逻辑运算
设有两个操作数
逻辑非 (NOT)
- 操作:对一个操作数的每一位取反。
- 公式:
逻辑乘 (AND)
- 操作:对两个操作数的对应位执行"与"操作。
- 公式:
- 应用:常用于按位清零或提取一个数的特定位(通过与一个"屏蔽字"进行与操作)。
示例:提取一个字节的低4位
10110101
& 00001111 (屏蔽字)
----------
00000101逻辑加 (OR)
- 操作:对两个操作数的对应位执行"或"操作。
- 公式:
- 应用:常用于按位置1。
示例:将某些位置1
10110101
| 00001111
----------
10111111逻辑异或 (XOR)
- 操作:对两个操作数的对应位执行"异或"操作(相同为0,不同为1)。
- 公式:
- 应用:
- 按位取反(与全1的数异或)
- 判断两数是否相等(若相等,结果为0)
- 数据加密
示例:按位取反
10110101
⊕ 11111111
----------
010010103. 实现
- 这些逻辑运算都可以在算术逻辑单元 (ALU) 中实现。ALU 通过控制信号选择执行算术操作还是逻辑操作。
- 在执行逻辑运算时,ALU 内部的进位链会被屏蔽或禁用。
易考点与难点
易考点:
- 掌握四种基本逻辑运算的规则。
- 理解逻辑运算的应用场景,如如何使用 AND 运算进行"屏蔽"或"清零",以及如何使用 OR 运算进行"置位"。这是汇编语言编程中的常用技巧,也常在考题中出现。
难点:本节内容相对简单,没有特别的难点。重点在于理解逻辑运算和算术运算的根本区别(是否按位独立、有无进位)。