I was going through the assembly code generated by the compiler. I am using the C programming language and GCC
compiler.
I wrote a function in C which adds two numbers by calling another function and stores the result in the variable pointed to by the pointer passed as an argument to the function.
void add_two_num(int x, int y, int * dest)
{
int val;
val = dummy(x, y);
*dest = val;
}
I compiled the source code to object code (linking not done) and then disassembled the code using objdump -d
What is the meaning of the number +0x9
in the line call d <add_two_num+0x9>
?
Is that useful at the stage of linking when that line will be replaced by the actual function call?
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 %eax,(%rbx)
f: 5b pop %rbx
10: c3 ret