当前位置:首页 > 编程笔记 > 正文
已解决

mit6.s081 笔记

来自网友在路上 166866提问 提问时间:2023-11-04 05:19:45阅读次数: 66

最佳答案 问答题库668位专家为你答疑解惑

1、系统调用

系统调用具体过程。
在任何地方,当我们需要使用系统调用时,只需要include “user/user.h”,就可以通过里面的函数声明来调系统调用,其函数的具体实现由 user/usys.pl 脚本帮我们生成对应的汇编代码(具体代码查看user/usys.s文件),在汇编中该函数被声明为global,因此我们可以在c语言中直接调用该函数(C语言可以调用汇编代码)。
例如trace系统调用:

.global trace
trace:li a7, SYS_traceecallret

上面代码将系统调用号保存到寄存器a7,然后通过ecall进入进入内核态的 syscall() 函数,再去执行具体系统调用。

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"mit6.s081 笔记":http://eshow365.cn/6-31549-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!