次のような 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 命令のアドレス フィールドに特別なコードを残しますか?