我正在瀏覽編譯器生成的匯編代碼。我正在使用 C 編程語言和GCC
編譯器。
我用 C 語言撰寫了一個函式,它通過呼叫另一個函式來添加兩個數字,并將結果存盤在作為引數傳遞給函式的指標所指向的變數中。
void add_two_num(int x, int y, int * dest)
{
int val;
val = dummy(x, y);
*dest = val;
}
我將源代碼編譯為目標代碼(鏈接未完成),然后使用反匯編代碼objdump -d
0x9
行中的數字是什么意思call d <add_two_num 0x9>
?
當該行將被實際的函式呼叫替換時,這在鏈接階段有用嗎?
file format elf64-x86-64
0000000000000004 <add_two_num>:
4: 53 push %rbx
5: 48 89 d3 mov %rdx,%rbx
8: e8 00 00 00 00 call d <add_two_num 0x9>
d: 89 03 mov
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/486323.html