TEST, logical compare
指令格式:
test reg8, imm8 test mem8, imm8 test reg16, imm16 test mem16, imm16 test reg8, reg8 test mem8, reg8 test reg16, reg16 test mem16, reg16
指令功能:
1)将两个操作数进行逻辑“与”操作(这与 AND 类似),但不会改变操作数;
2)并根据结果来修改标志寄存器;
标志寄存器的变化:
1)OF = CF = 0
2)ZF、SF、PF:取决于测试结果;
3)AF:未定义;
指令示例:测试 AL 寄存器的第 3 位 是否为零:
test al, 0x08 ;; 0x08 = 0000_1000B ;; 如果 AL 的第 3 为零,则 test 结果为 0,此时 ZF=1 ;; 如果 AL 的第 3 非零,则 test 结果为 1,此时 ZF=0 ;; 然后,我们在该指令后使用 jcc 指令簇进行条件跳转