汇编指令陷阱有什么作用?

Nik*_*ntz 4 assembly basic nios

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

汇编指令 trap 和 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
Run Code Online (Sandbox Code Playgroud)

更新

AFAIK 在 BASIC 中你可以写例如

10 TRAP 20
Run Code Online (Sandbox Code Playgroud)

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

Ale*_*ler 6

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

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