【发布时间】:2012-12-22 15:45:58
【问题描述】:
假设你有一个这样的 C 文件:
extern void foo(void);
int main(int argc, char** argv) {
foo();
return 0;
}
这会生成以下 x86-64 程序集:
extern _foo
global _main:
callq foo
retq
当编译器为此编写目标文件时,它如何告诉链接器返回并填写 'foo' 的实际地址?它会在 callq 指令的地址字段中留下特殊代码吗?
【问题讨论】:
标签: assembly linker x86 x86-64