我正在二进制文件中搜索特定指令,对于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 的指令还是没有优化集?