TEST

作者:Vesper Vei
1 分钟阅读

目录

  1. TEST(test)
    1. 基本作用
    2. 指令执行过程
    3. 指令格式
    4. 行为特性
    5. 常见用途
    6. 小例子:判断 eax 是否为偶数

TEST(test)

基本作用

TEST 指令对两个操作数执行按位与(AND),但不保存结果,只更新标志位
它通常用于条件判断,例如判断寄存器是否为 0、检查某一位是否被置位等。 逻辑行为:

temp = op1 & op2 ; 结果丢弃
更新 EFLAGS ; 根据 temp 更新标志位

指令执行过程

指令格式

test r/m32, r32
test r/m64, r64
test r/m32, imm32
test r/m8, imm8

行为特性

与 AND 的区别:

等效行为示例(逻辑等价):

and temp, op1, op2 ; 假设 temp 是一个不存在的寄存器
根据 temp 更新 EFLAGS
; temp 被丢弃

常见用途

test eax, eax ; 等价于检查 eax 是否为 0
jz is_zero

小例子:判断 eax 是否为偶数

test eax, 1
jz even

原理:最低位为 0 → 偶数。



关系图谱

Loading graph...