gpt4 book ai didi

assembly - 不同的 68k 模拟器有不同的 TRAP 任务吗?

转载 作者:行者123 更新时间:2023-12-04 13:55:22 26 4
gpt4 key购买 nike

我最近一直在重温摩托罗拉 68000 编程。诚然,当我参加这门类(class)时,我只是做了必要的事情才能通过(并且有一个可怕的教授)……但现在我实际上对这些东西感兴趣。不管怎样,翻翻我的旧课本The 68000 Microprocessor by James L. Antonakos ,他使用以下代码:

      ORG     $8000
HMSG DC.B 'Hello!'
DC.B 0
ORG #8100
START MOVEA.L #HMSG,A3
TRAP #3
TRAP #9
END START

这不会在 Easy68k 中编译,但书上有 ASM68K referenced .当我将代码更改为此时,它起作用了。
      ORG   $1000
HSMG DC.B 'Hello!',0

START LEA HSMG,A1
MOVE #14,D0
TRAP #15

END START

这仅仅是由于编译器之间的差异吗?还是我在这里错过了更大的东西?我知道在模拟器中 TRAP #15执行当时寄存器 D0 中的任何任务,但是每个模拟器是否有不同的陷阱任务,还是所有 68000 个处理器的标准?

最佳答案

TRAP指令只是调用内存中某个长字指向的例程。这部分行为对于所有 68000 CPU 都是通用的。长字指向哪里,它指向的例程做什么(以及如何传递它需要的数据等等)取决于特定的系统。

(例如 Atari ST 使用 TRAP 调用操作系统,您通常会在堆栈上传递所有相关信息。寄存器内容被忽略。我相信 Mac OS“系统”也以类似的方式使用了 TRAP ,而 Amiga 根本没有使用它。)

关于assembly - 不同的 68k 模拟器有不同的 TRAP 任务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3356344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com