【发布时间】:2011-05-03 13:57:02
【问题描述】:
我想知道与使用一系列 cmp 和 jmp 语句相比,.if 和 .elseif 指令是否有任何性能劣势。
谢谢!
Devjeet
【问题讨论】:
标签: performance assembly masm
我想知道与使用一系列 cmp 和 jmp 语句相比,.if 和 .elseif 指令是否有任何性能劣势。
谢谢!
Devjeet
【问题讨论】:
标签: performance assembly masm
总的来说,没有性能劣势。
但是,如果您决定一直使用它们,您可能应该不时检查一下生成的汇编程序,以更好地了解它们对您的代码所做的事情。在极少数情况下,生成的代码效率会稍低。
【讨论】:
你更有可能写一个更糟糕的 .if 你自己。例如,“.IF eax==0”被评估为:
test eax,eax
jnz label
没有比这更好的了。
【讨论】:
sub eax,2(可以是用作比较 eax==2,您希望保留差异)后跟 .if eax==0。只需在随机页面上阅读该代码(如果您使用 google masm ".if",则可以看到第四个结果