【发布时间】:2017-01-26 04:01:58
【问题描述】:
test eax, eax 是否比cmp eax, 0 更高效?在cmp eax, 0 不满足要求的情况下,是否需要test eax, eax?
【问题讨论】:
-
test比cmp短,因为它不包含立即数。 -
在您提供的示例中,从操作码计数的角度来看没有区别。您只是在问“EAX 为零吗?”所以这可能只是整个代码的一致性问题。参考英特尔架构和指令intel.com/content/www/us/en/processors/…
-
Peter Cordes 在这里有一个很好的答案:stackoverflow.com/a/33724806/3857942 涉及
cmp和test之间的区别。该问题本身不是重复的,因为该问题询问了有关使用or进行测试的问题,但答案肯定与此问题相关。