wnh gcc会生成额外的xchg指令,并且最后会生成一个nop吗?

时间:2016-12-08 07:25:31

标签: c gcc assembly

代码示例:

int main(int argc, char *argv[]) {

        return 0;
}

使用命令编译:{{1​​}}

这是gcc -m32 -g -o main main.c的汇编:

objdump

为什么gcc会在那里添加所有080483db <main>: int main(int argc, char *argv[]) { 80483db: 55 push ebp 80483dc: 89 e5 mov ebp,esp return 0; 80483de: b8 00 00 00 00 mov eax,0x0 } 80483e3: 5d pop ebp 80483e4: c3 ret 80483e5: 66 90 xchg ax,ax 80483e7: 66 90 xchg ax,ax 80483e9: 66 90 xchg ax,ax 80483eb: 66 90 xchg ax,ax 80483ed: 66 90 xchg ax,ax 80483ef: 90 nop 和最终xchg ax, ax?我注意到,如果不添加nop,则会删除那些-m32指令,但仍会出现nop:

xchg ax, ax

0 个答案:

没有答案