21,497
社区成员




if( op1 == op2 )
{
X = 1;
Y = 2;
}
mov eax, op1
cmp eax,op2 ; op1 == op2?
jne L1 ; 否:跳过后续指令
mov X, 1 ; 是:X, Y 赋值
mov Y, 2
L1:
可以用cmove指令,但是指令数并不少,因为CMOVcc指令不支持源操作数为立即数,但是可以消去分支指令
还真看过指令优化的那个 pdf,感觉看来点儿之后,都要神经质了,探出手指头,不知道该怎么敲了。
所以,还是别太在意了。