【发布时间】:2012-11-26 01:07:01
【问题描述】:
“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 行成为处理错误的行。
【问题讨论】:
-
你指的是哪个 BASIC 方言?
-
@JensBjörnhager Commodore 64。我在 BASIC 中发现了陷阱:classic-games.com/commodore64/cbmtoken.html
-
链接断开。 this 是您链接的内容,对吗?
-
@keyser 是的。我想 gcc 不能生成所有的汇编指令(例如
TRAP)。 -
它总是为系统调用生成软件陷阱。我不知道具体的说明,也许
INT。