KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
gettimeofday is a syscall of x86-86 according to this page (just search gettimeofday in the box): int gettimeofday(struct timeval *tv, struct timezone *tz); I thought the disassembly should be easy enough, just prepare the two pointers and call the related syscall , but its disassembly is doing much more: (gdb) disas gettimeofday Dump of assembler code for function gettimeofday: 0x00000034f408c2d0 <gettimeofday+0>: sub $0x8,%rsp 0x00000034f408c2d4 <gettimeofday+4>: mov $0xffffffffff600000,%rax 0x00000034f408c2db <gettimeofday+11>: callq *%rax 0x00000034f408c2dd <gettimeofday+13>: cmp $0xfffff001,%eax 0x00000034f408c2e2 <gettimeofday+18>: jae 0x34f408c2e9 <gettimeofday+25> 0x00000034f408c2e4 <gettimeofday+20>: add $0x8,%rsp 0x00000034f408c2e8 <gettimeofday+24>: retq 0x00000034f408c2e9 <gettimeofday+25>: mov 0x2c4cb8(%rip),%rcx # 0x34f4350fa8 <free+3356736> 0x00000034f408c2f0 <gettimeofday+32>: xor %edx,%edx 0x00000034f408c2f2 <gettimeofday+34>: sub %rax,%rdx 0x00000034f408c2f5 <gettimeofday+37>: mov %edx,%fs:(%rcx) 0x00000034f408c2f8 <gettimeofday+40>: or $0xffffffffffffffff,%rax 0x00000034f408c2fc <gettimeofday+44>: jmp 0x34f408c2e4 <gettimeofday+20> End of assembler dump. And I don't see syscall at all. Can anyone explain how it works?
Tags (comma-separated)
Save Edits
Cancel