我看到了一个主函数的 gdb 反汇编输出,它没有做任何特别的事情,它看起来像这样:
1 push %rbp
2 mov %rsp, %rbp
3 sub $0x10,%rsp
4 movl $0x0, -0x8(%rbp) ;
5 mov -0x8(%rbp), %eax ;
6 mov %eax, -0x4(%rbp) ;
7 mov -0x4(%rbp), %eax ;
8 add $0x10, %rsp
9 pop %rbp
10 retq
我不是 Mac 用户,但我很好奇,从 4 到 7 的行到底在做什么?.不应该是这样的:
push %rbp
mov %rsp, %rbp
sub $0x10, %rsp
xor %eax, %eax
add $0x10, %rsp
pop %rbp
retq
注意:请随时改进问题标题,我找不到更好的。