有不同的68K模拟器具有不同的陷阱任务?

问题描述 投票:0回答:2

ORG $8000 HMSG DC.B 'Hello!' DC.B 0 ORG #8100 START MOVEA.L #HMSG,A3 TRAP #3 TRAP #9 END START 这本书不会在

easy68k
中进行编译,但是该书的
MASM68K引用了。当我更改代码时,它有效。

ORG $1000 HSMG DC.B 'Hello!',0 START LEA HSMG,A1 MOVE #14,D0 TRAP #15 END START 这仅仅是由于编译器之间的差异吗?还是我在这里错过了更大的东西?我知道在模拟器中TRAP #15执行当时寄存器D0中的任何任务,但是每个模拟器中是否存在不同的陷阱任务,或者是所有68000处理器中的标准标准吗?

指令只是调用一个例程,该例程是由内存中某个地方的长字指向的。该行为的这一部分对于所有68000 CPU都是共同的。长字指向的位置,以及它指向的例程(因此如何传递它所需的数据等)取决于特定系统。

(例如,Atari ST使用

TRAP
来呼叫OS,您通常通过堆栈上的所有相关信息。寄存器内容被忽略。我相信Mac OS“系统”也以类似的方式使用,并且Amiga根本没有使用它。)

assembly 68000
2个回答
10
投票
68000提供16个用户陷阱(软件中断/异常),但没有指定他们的工作。这取决于BIOS/OS系统,无论是模拟器还是Amiga,Atari st等

对于后代,这是ease68k中陷阱15执行的任务列表。从本文档的底部窃

http://www.easy68k.com/files/easy68kquickref.pdf
.pdf

. commonly使用的模拟器输入/输出任务

trap#15用于运行模拟器任务。将任务编号放入寄存器D0中。

TRAP
是无效的


5
投票
任务 Description

0

display n字符串的字符字符(a1),n = d1.w(在null上停止或最大255),cr,lf


1
display n字符串的字符字符(a1),n = d1.w(在null上停止或最大255),没有Cr,lf2从键盘阅读字符。存储在(A1)。无效终止。 d1.w =长度(最大80)345中的单个字符 6 display d1.b作为ASCII字符7SETD1.B至1如果键盘输入待处理,则设置为08午夜以来的时间为1/100秒→D1.l9终止程序。 (停止模拟器)10默认打印机上(A1)的打印CSTRING11置位光标在Row,Col D1.W = CCRR,$ ff00clears13 cr,lf在没有Cr的(A1)的display cstring,lf d2.b base d1.l中的display unsigned编号 中显示号码 的数字 d1.l中的Display±数字,字段d2.b列宽21SET字体属性
display d1.l作为签名的十进制数字
从键盘读取到D1.L
从键盘中阅读D1.B
14
15
17 display cstring在(a1),然后在d1.l
18 display cstring在(a1),读取d1.l
19 返回键或扫描代码
20
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.