3
我想在Linux中实现一个系统调用(RedHat Enterprise 8),我对它的工作方式有点困惑。根据我的理解,我实现了一个用户模式的包装器,它将系统调用号码放入eax和ebx,ecx,edx等参数中,然后调用int 0x80,调用相应的系统调用。我的问题是,由于系统调用像一个常规的C函数一样写,它怎么知道哪些寄存器包含什么参数?这是一种惯例,还是有一种机制,如果是的话,它在哪里以及如何做?系统调用如何知道包装函数在哪里放入其参数?
编辑:这是一项家庭作业。我知道有系统调用宏可以为我做这个东西。
那么,为什么你不阅读宏,看看他们在做什么呢? – 2010-03-22 21:42:52
我做过了,但我无法从中找出任何东西。这不完全是标准的汇编代码。 – EpsilonVector 2010-03-22 21:54:12