姬長信(Redy)

linux – 如何在内联汇编中通过sysenter调用…


我们如何在x86 Linux中直接使用sysenter / syscall实现系统调用?有人可以提供帮助吗?如果您还可以显示amd64平台的代码,那就更好了.

我知道在x86中,我们可以使用

__asm__(
"               movl $1, %eax  /n"
"               movl $0, %ebx /n"
"               call *%gs:0x10 /n"
);

间接路由到sysenter.

但是我们如何使用sysenter / syscall直接编码来发出系统调用呢?

我找到了一些材料http://damocles.blogbus.com/tag/sysenter/.但仍然难以弄明白.