2

我不是专家,只是一个业余爱好者。过去我在玩 68000 架构,我一直在想它的 TRAP 指令。该指令始终被描述为操作系统的“桥梁”(在某些系统中,但在这方面并未使用它,但这是另一回事)。这是如何实现的?TRAP 本身是一条特权指令,那么这个 OS 调用机制在用户模式下是如何工作的呢?我的猜测是触发了特权违规异常,并且异常处理程序检查了导致异常的特定指令。如果它是一条 TRAP 指令,那么该指令将被简单地执行(也许 TRAP 的操作数,即 TRAP 向量号也被检查),当然现在是在超级用户模式下。我对吗?

4

1 回答 1

6

TRAP 指令没有特权,您可以从用户模式或管理员模式调用它。

是 TRAP 指令本身将强制 CPU 进入超级用户模式,然后根据您使用的 #xx 数字,将跳转到从内存区域 $80 到 $BC 的 16 个可能的回调中的任何一个。

TRAP 还将 PC 和 SR 值推送到堆栈,因此当最后一个函数调用返回时,它会返回到调用 TRAP 之前设置的任何模式。

于 2014-04-17T09:00:42.177 回答