[RFC]confusion about syscall
Peter Teoh
htmldeveloper at gmail.com
Sat Jul 14 22:52:16 EDT 2012
int 80, i think, is hardly used nowadays:
http://wiki.osdev.org/System_Calls
http://articles.manugarg.com/systemcallinlinux2_6.html
http://semipublic.comp-arch.net/wiki/SYSENTER/SYSEXIT_vs._SYSCALL/SYSRET
and even for SYSENTER instruction, it will not be compiled into your
program, but exists inside some external libraries, unless u compile it as
static.
On Sun, Jul 15, 2012 at 10:28 AM, 王哲 <wangzhe5004 at gmail.com> wrote:
> Hi all:
>
> i write two simple program to invoke syscall getpid.
>
> the first program (getpid1.c) is as followed:
> #include <stdio.h>
> #include <unistd.h>
>
> int main(void)
> {
> unsigned long value = 0;
> __asm__("int $0x80":"=a"(value):"0"(20));
> return 0;
> }
>
> and use objdump -d a.out disassembling it :
> ...
> 80483c2: b8 14 00 00 00 mov $0x14,%eax
> 80483c7: 89 c3 mov %eax,%ebx
> 80483c9: 89 d8 mov %ebx,%eax
> 80483cb: cd 80 int $0x80
> ...
>
>
> and the second program:
>
> #include <stdio.h>
> #include <unistd.h>
>
> int main(void)
> {
> unsigned long value = 0;
> value = getpid();
> return 0;
> }
>
> and disassembling it:( objdump -d a.out)
> ...
> 08048300 <getpid at plt>:
> 8048300: ff 25 00 a0 04 08 jmp *0x804a000
> 8048306: 68 00 00 00 00 push $0x0
> 804830b: e9 e0 ff ff ff jmp 80482f0 <_init+0x3c>
> ...
> 080483e4 <main>:
> 80483e4: 55 push %ebp
> 80483e5: 89 e5 mov %esp,%ebp
> 80483e7: 83 e4 f0 and $0xfffffff0,%esp
> 80483ea: 83 ec 10 sub $0x10,%esp
> 80483ed: c7 44 24 0c 00 00 00 movl $0x0,0xc(%esp)
> 80483f4: 00
> 80483f5: e8 06 ff ff ff call 8048300
> <getpid at plt>
> 80483fa: 89 44 24 0c mov %eax,0xc(%esp)
> 80483fe: b8 00 00 00 00 mov $0x0,%eax
> ...
>
> question:
> why i can't find the "movl $0x14,%eax" "int 0x80" in the second
> program after disassembling?
>
> any advice will be help!
> thanks in advance!
> wanny
>
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
>
--
Regards,
Peter Teoh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20120715/bd76014e/attachment.html
More information about the Kernelnewbies
mailing list