摩托罗拉68K TRAP指令作为操作系统的桥梁

时间:2014-03-17 13:15:58

标签: operating-system motorola 68000 motorola-trap

我不是专家,只是一个业余爱好者。我过去玩的是68000架构,我一直在考虑它的TRAP指令。该指令始终被描述为"桥接"对于操作系统(在某些系统中,它并没有在这方面使用,但这是一个不同的故事)。如何实现这一目标? TRAP本身是一个特权指令,那么这个OS调用机制如何在用户模式下工作?我的猜测是触发了特权违规异常,异常处理程序检查特定指令导致了异常。如果它是TRAP指令,则简单地执行该指令(也可以检查TRAP的操作数,即检查TRAP矢量号),当然现在处于管理程序模式。我是对的吗?

1 个答案:

答案 0 :(得分:5)

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

这是TRAP指令本身会强制CPU进入管理员模式,然后根据您使用的#xx号码跳转到从内存区域$ 80到$ BC的16个可能回调中的任何一个。

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