if(!A && !B)
それは(!A &&!B)が単一のTEST命令に最適化されないのはなぜですか?
mov eax, dword ptr[esp + A_offset]
test eax, dword ptr[esp + B_offset]
jne ~~~~~~~~~~
にコンパイルする必要がありますように、ここで
8B 45 F8 mov eax,dword ptr [b]
83 7D FC 00 cmp dword ptr [a],0
75 04 jne main+32h (0A71072h)
85 C0 test eax,eax
75 00 jne main+32h (0A71072h)
なぜそれが単一TEST命令を使用していないダンプコンパイラが実際に
mov eax, dword ptr[esp + A_offset]
test eax, eax
jne ~~~~~~~~~~
mov eax, dword ptr[esp + B_offset]
test eax, eax
jne ~~~~~~~~~~
参照を生成しそうです支店や指示を保存するには?
A = 1かつB = 2の場合はどうなりますか?そうすれば、テストは間違った答えを与えるでしょう。 –
@Yuvalこれは重複していません(少なくともその特定の質問ではありません)。 –
@MarcGlisse質問には、&& 'ではなく、'& 'と書かれています。 – molbdnilo