【发布时间】:2013-09-16 17:26:52
【问题描述】:
我已经编写了这个简单的 C 代码
int main()
{
int calc = 2+2;
return 0;
}
我想看看它在汇编中的样子,所以我使用 gcc 编译它
$ gcc -S -o asm.s test.c
结果是 ~65 行(Mac OS X 10.8.3),我只发现这些是相关的:
在这段代码中我在哪里可以找到我的2+2?
编辑:
部分问题尚未解决。
如果%rbp, %rsp, %eax 是变量,在这种情况下它们会获得什么值?
【问题讨论】:
-
编译器几乎可以肯定只是将
4直接移动到calc。 -
请注意,进一步的优化甚至可能完全消除
calc,因为它没有在任何地方的函数体中引用