我如何在十六进制中进行 bcalls?
How do I do bcalls in hex?
所以我有一个 TI-84 Plus C 银版。我刚刚开始使用操作码在其上编写汇编程序。我找到了一个很好的参考图表 here,但想知道如何进行 bcalls,特别是如何将字符打印到屏幕上。好像调用的十六进制代码长 3 个字节,但调用占用 2 个字节。那我怎么称呼它呢?
另外,有人知道当我的计算器 运行 时程序加载到内存位置吗?我还没找到。
根据此处的定义:http://wikiti.brandonw.net/index.php?title=84PCSE:OS:Include_File,"bcall" 是 RST 28
指令,后跟 bcall 的具体编号。所以要打印一个字符你会做(假设 PutC
是 44FB
):
rst 28h
dw 44FBh
大概要打印的字符在 A
寄存器中。
TI 使用 rst 28h
作为他们的 bcall,转换为十六进制为 EF
。 Bcalls 是 2 个字节,但请记住 Z80 和 eZ80 是小端处理器。所以如前所述,_PutC
是 44FB
,因此您必须先使用 FB
,然后再使用 44
,使 bcall(_PutC)
等同于 EFFB44
.
我认为您使用的计算器有一个 eZ80。虽然 eZ80 向后兼容 Z80 指令集,但您链接到的 table 对于 eZ80 来说并不完整。如果你真的想变得狂野,你可以使用 Zilog here 提供的文档,但我必须警告你,如果你对 Z80 Assembly 不太满意table,阅读 material会太密了。
所以我有一个 TI-84 Plus C 银版。我刚刚开始使用操作码在其上编写汇编程序。我找到了一个很好的参考图表 here,但想知道如何进行 bcalls,特别是如何将字符打印到屏幕上。好像调用的十六进制代码长 3 个字节,但调用占用 2 个字节。那我怎么称呼它呢? 另外,有人知道当我的计算器 运行 时程序加载到内存位置吗?我还没找到。
根据此处的定义:http://wikiti.brandonw.net/index.php?title=84PCSE:OS:Include_File,"bcall" 是 RST 28
指令,后跟 bcall 的具体编号。所以要打印一个字符你会做(假设 PutC
是 44FB
):
rst 28h
dw 44FBh
大概要打印的字符在 A
寄存器中。
TI 使用 rst 28h
作为他们的 bcall,转换为十六进制为 EF
。 Bcalls 是 2 个字节,但请记住 Z80 和 eZ80 是小端处理器。所以如前所述,_PutC
是 44FB
,因此您必须先使用 FB
,然后再使用 44
,使 bcall(_PutC)
等同于 EFFB44
.
我认为您使用的计算器有一个 eZ80。虽然 eZ80 向后兼容 Z80 指令集,但您链接到的 table 对于 eZ80 来说并不完整。如果你真的想变得狂野,你可以使用 Zilog here 提供的文档,但我必须警告你,如果你对 Z80 Assembly 不太满意table,阅读 material会太密了。