布尔与比较指令及条件跳转详解
1. XOR 指令特性
XOR(异或)指令具有独特的性质,当对同一操作数应用两次 XOR 时,它会恢复操作数的原始值。以下真值表展示了这一特性:
| x | y | x⊕y | (x⊕y)⊕y |
| — | — | — | — |
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
这种“可逆”特性使 XOR 成为简单数据加密的理想工具。
XOR 指令总是会清除溢出(Overflow)和进位(Carry)标志,并根据目标操作数的值修改符号(Sign)、零(Zero)和奇偶校验(Parity)标志。
2. 奇偶校验标志检查
奇偶校验标志用于指示按位或算术运算结果的最低字节中 1 的位数是偶数还是奇数。当奇偶性为偶数时,该标志被设置;当奇偶性为奇数时,该标志被清除。以下是检查奇偶性的示例:
mov al,10110101b ; 5 位 = 奇数奇偶性 xor al,0 ; 奇偶校验标志清除 (PO) mov al,11001100b ; 4 位 = 偶数奇偶性 xor al,0 ; 奇偶校验标志设置 (PE)调试器通常使用 PE 表示偶数奇偶性,PO 表示奇数奇偶性。
对于 16 位寄存器的奇偶性检查,可以通过对高字节和低字节进行异或操作来实现:
m