1

实时调频

当程序需要操作系统提供服务时,程序通常会发出软件陷阱。操作系统的通用异常处理程序确定陷阱的原因并做出适当的响应。

汇编指令陷阱是否与 BASIC 中的指令陷阱相似?答案似乎是肯定的。你能接受或拒绝我的结论吗?

“不中断”的代码是根据我的指示:

noint:
    PUSH r8
    movia r8,0x003b683a # machine code for TRAP
    ldw et,-4(ea) # read instr closest to return
    cmpeq et,et,r8 # compare
    POP r8
    bne et,r0,TrapHandler # if equal, jump to traphandler

更新

BASIC 中的 AFAIK,您可以编写例如

10 TRAP 20

使第 20 行成为处理错误的行。

4

2 回答 2

4

不确定 TRAP 在 BASIC 中的作用,但TRAP您链接的汇编器手册中的指令会生成可由操作系统处理的硬件异常。

程序员很少需要在他们的代码中使用这条指令。它的典型用途是由调试器在需要停止的点(断点)处插入正在调试的代码中,然后运行/继续程序,并在TRAP到达指令后重新获得控制权。

于 2012-11-26T01:18:56.833 回答
1

用户进程可以自愿过渡到操作系统内核,请求内核代表用户做一些操作。系统调用是内核提供的任何可以从用户级调用的过程。大多数处理器使用特殊的陷阱指令实现系统调用。

于 2015-02-11T20:52:36.473 回答