使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

Posted 2135314朱恒志

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用相关的知识,希望对你有一定的参考价值。

朱恒志 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”

使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

系统调用列表参见http://codelab.shiyanlou.com/xref/linux-3.18.6/arch/x86/syscalls/syscall_32.tbl

我选择了20号:
技术分享

使用库函数API在屏幕上显示进程的ID:

技术分享

技术分享

使用C语言内嵌汇编代码:

代码:

#include <unistd.h>

#include <stdio.h>

int main()

{

pid_t pid; pid = getpid();

asm volatile(

"mov $0x14,%%eax\n\t"

"int $0x80\n\t"

"mov %%eax,%0\n\t"

 : "=m" (pid) );

printf("pid = %d \n",pid);

return 0;

}

技术分享

 

以上是关于使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用的主要内容,如果未能解决你的问题,请参考以下文章

使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

实验--使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用(杨光)

实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

实验--使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用(李鹏举)

实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用