小编Joh*_*Doe的帖子

在 x86 ASM 中测试零通常更快:“TEST EAX, EAX”与“TEST AL, AL”?

测试 AL 中的字节是否为零/非零通常哪个更快?

  • TEST EAX, EAX
  • TEST AL, AL

假设前面的"MOVZX EAX, BYTE PTR [ESP+4]"指令加载了一个带有零扩展的字节参数到 EAX 的其余部分,从而防止了我已经知道的组合值惩罚。

因此 AL=EAX 并且读取 EAX 不会受到部分寄存器的影响。

直观上,仅检查 AL 可能会让您认为它更快,但我敢打赌,对于 >32 位寄存器的字节访问,需要考虑更多的惩罚问题。

任何信息/细节表示赞赏,谢谢!

performance x86 assembly micro-optimization

5
推荐指数
1
解决办法
916
查看次数

标签 统计

assembly ×1

micro-optimization ×1

performance ×1

x86 ×1