装配指令陷阱有什么作用?

时间:2012-11-26 01:07:01

标签: assembly basic nios

RTFM

  

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

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

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

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行成为处理错误的行。

2 个答案:

答案 0 :(得分:4)

不确定TRAP在BASIC中做了什么,但是您链接的汇编程序手册中的TRAP指令会生成可由操作系统处理的硬件异常。

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

答案 1 :(得分:1)

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