2017-03-04 108 views
-2

对于具有带4个通用寄存器的CPU的操作系统。通过仅使用CPU寄存器(即不使用内存块或堆栈),多少参数可传递给系统调用?操作系统和寄存器参数

假设寄存器的大小与传递给系统调用的参数相同。

+0

如何将参数传递给系统调用?除了参数之外是否还有系统调用的其他必需参数(它们是通用目录还是机器有一些特殊的寄存器来执行系统调用)?参数的大小是否等于寄存器宽度? (你是否参加过课程并阅读你的教科书?) – osgx

回答

1

你的问题完全是硬件特定的。该计划是否为“通用注册”?在大多数处理器中,它是其他的不是。

你的堆栈指针是“通用寄存器?”再一次,在大多数处理器中,它只是在其他情况下不是。

根据硬件配置,您的答案可能在2到4之间。

+0

我在我的一个教程问题中遇到了这个问题,发现这个用词很混乱,有点含糊。所以我希望在这里的人可能比我更了解它,并且可能给我一个很好的答案。 – Kyle

+0

问题的要点是“有多少个寄存器是空闲的。”您必须知道您开始使用多少个寄存器以及多少个寄存器正在使用中。有些系统包含一个帧指针。在这种情况下,你的答案可能只有1。 – user3344003