“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行成为处理错误的行。
答案 0 :(得分:4)
不确定TRAP在BASIC中做了什么,但是您链接的汇编程序手册中的TRAP
指令会生成可由操作系统处理的硬件异常。
程序员很少需要在代码中使用此指令。它的典型用途是由调试器插入到需要停止的地方调试的代码(断点),然后运行/继续程序,并在达到TRAP
指令后重新获得控制权。
答案 1 :(得分:1)
用户进程可以自愿转换到操作系统内核,请求内核代表用户执行某些操作。系统调用是内核提供的可以从用户级调用的任何过程。大多数处理器使用特殊陷阱指令实现系统调用。