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

陈良 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://www.xuetangx.com/courses/course-v1:ustcX+USTC001+_/about 

1.使用库函数API的1号系统调用exit()调用sys_exit:

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

2.使用C代码中嵌入汇编代码方式使用1号系统调用sys_exit

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

这里直接将1号系统调用赋值给%eax

调用int 0x80系统调用

返回值传递到%eax,由于这里没有将返回值赋予一个内存变量,因此直接结束。

3.理解系统调用的工作机制

系统调用实质就是用户态代码调用系统调用API,在这个API中调用系统调用中断向量,触发中断system_call,接着调用中断服务xx