KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
to understand the concept of relocation, i wrote a simple chk.c program as follows : 1 #include<stdio.h> 2 main(){ 3 int x,y,sum; 4 x = 3; 5 y = 4; 6 sum = x + y; 7 printf("sum = %d\n",sum); 8 } its equivalent assembly code, using "objdump -d chk.o" is : 00000000 <main>: 0: 55 push %ebp 1: 89 e5 mov %esp,%ebp 3: 83 e4 f0 and $0xfffffff0,%esp 6: 83 ec 20 sub $0x20,%esp 9: c7 44 24 1c 03 00 00 movl $0x3,0x1c(%esp) 10: 00 11: c7 44 24 18 04 00 00 movl $0x4,0x18(%esp) 18: 00 19: 8b 44 24 18 mov 0x18(%esp),%eax 1d: 8b 54 24 1c mov 0x1c(%esp),%edx 21: 8d 04 02 lea (%edx,%eax,1),%eax 24: 89 44 24 14 mov %eax,0x14(%esp) 28: b8 00 00 00 00 mov $0x0,%eax 2d: 8b 54 24 14 mov 0x14(%esp),%edx 31: 89 54 24 04 mov %edx,0x4(%esp) 35: 89 04 24 mov %eax,(%esp) 38: e8 fc ff ff ff call 39 <main+0x39> 3d: c9 leave 3e: c3 ret and .rel.text section seen using readelf is as follows : Relocation section '.rel.text' at offset 0x360 contains 2 entries: Offset Info Type Sym.Value Sym. Name 00000029 00000501 R_386_32 00000000 .rodata 00000039 00000902 R_386_PC32 00000000 printf i have following questions based on this : 1) from 2nd entry in .rel.text section, i am able to understand that value at offset 0x39 in .text section (which is 0xfcffffff here) has to be replaced with address of a symbol associated with index 9 of symbol table (& that comes out to be printf). But i am not able to clearly understand the meaning
Tags (comma-separated)
Save Edits
Cancel