Intel x86 Assembly& Microarchitecture 测试寄存器为0

示例

背景

要弄清寄存器是否为零,天真的方法是这样做:

    cmp   eax, 0

但是,如果您查看此操作码,则会得到以下信息:

83 F8 00      cmp   eax, 0

采用 test

    test   eax, eax      ; Equal to zero?

检查您得到的操作码:

85 c0         test   eax, eax

优点

  • 只有两个字节!

缺点

  • 对不熟悉该技术的读者不透明

您也可以查看有关此技术的问答问题。