バイナリファイルで特定の命令を検索していますが、そのxor eax,eax
命令には次のような関数があります。
int foo(){
return 0;
}
GCC 4.7.2 および -O2 または -O3 最適化フラグを使用してコンパイルすると、アセンブリの結果は良好foo()
です。
xor eax,eax
関数を終了する前に。代わりに、-O1 または最適化なしでコンパイルした場合、従来の
mov eax,0x0
は生産された。
問題は、(C コードに関して、および __asm ディレクティブなしで) を生成する他の方法があるかどうかです。
xor eax,eax
GCC と -O1 を使用するか、最適化が設定されていない命令ですか?