【问题标题】:Operating system and register parameters操作系统和寄存器参数
【发布时间】:2017-03-04 22:49:02
【问题描述】:

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

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

【问题讨论】:

  • 如何将参数传递给系统调用?除了参数之外,系统调用是否还有其他必需的参数(它们是通用 reg 还是您的机器有一些特殊的寄存器来执行系统调用)?参数的大小是否等于寄存器宽度? (您上课并阅读教科书吗?)

标签: memory operating-system stack cpu cpu-registers


【解决方案1】:

您的问题完全是特定于硬件的。程序计数器是“通用寄存器”吗?在大多数处理器中它是,但在其他处理器中不是。

您的堆栈指针是“通用寄存器”吗?同样,在大多数处理器中它是,但在其他处理器中不是。

您的答案可能在 2 到 4 之间,具体取决于硬件配置。

【讨论】:

  • 我在我的一个教程问题中遇到了这个问题,发现措辞令人困惑且有点含糊。所以我希望这里的人可能比我更了解它,并可能给我一个好的答案。
  • 问题的要点是“有多少寄存器是免费的”。您必须知道您开始使用的寄存器数量以及正在使用的寄存器数量。一些系统包括一个帧指针。在这种情况下,您的答案可能只有 1。
猜你喜欢
  • 2012-04-24
  • 1970-01-01
  • 2013-01-06
  • 2013-06-30
  • 2013-08-25
  • 1970-01-01
  • 2017-08-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多