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

use*_*246 2 operating-system 68000 motorola motorola-trap

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

Mic*_*ier 6

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

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

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