汇编语言布尔和比较指令简介

< 上一页汇编语言条件判断 AND指令下一页 >
前面介绍了四种基本的布尔代数操作:AND、OR、XOR 和 NOT。用汇编语言指令,这些操作可以在二进制位上实现。同样,这些操作在布尔表达式层次上也很重要,比如 IF 语句。

首先了解按位指令,这里使用的技术也可以用于操作硬件设备控制位,实现通信协议以及加密数据,这里只列举了几种应用。Intel 指令集包含了 AND、OR、XOR 和 NOT 指令,它们能直接在二进制位上实现布尔操作,如下表所示。此外,TEST 指令是一种非破坏性的 AND 操作。

操作 说明
AND 源操作数和目的操作数进行逻辑与操作
OR 源操作数和目的操作数进行逻辑或操作
XOR 源操作数和目的操作数进行逻辑异或操作
NOT 对目标操作数进行逻辑非操作
TEST 源操作数和目的操作数进行逻辑与操作,并适当地设置 CPU 标志位

布尔指令影响零标志位、进位标志位、符号标志位、溢出标志位和奇偶标志位。下面简单回顾一下这些标志位的含义:
  • 操作结果等于 0 时,零标志位置 1。
  • 操作使得目标操作数的最高位有进位时,进位标志位置 1。
  • 符号标志位是目标操作数高位的副本,如果标志位置 1,表示是负数;标志位清 0,表示是正数。(假设 0 为正。)
  • 指令产生的结果超出了有符号目的操作数范围时,溢岀标志位置 1。
  • 指令使得目标操作数低字节中有偶数个 1 时,奇偶标志位置 1。

接下来分别为大家讲解 AND、OR、XOR 和 NOT 的实际应用。
< 上一页汇编语言条件判断 AND指令下一页 >