gpt4 book ai didi

assembly - Z80 (TI-83+) 在 CALL 上停止工作

转载 作者:行者123 更新时间:2023-12-04 17:13:41 28 4
gpt4 key购买 nike

每次我为 TI-83+ 计算器(Z80 处理器)组装一个应用程序时,它都会在 CALL 处停止运行。这是一个例子(“Hello”)——它开始运行得很好,但计算器在 CALL 指令处卡住。我在 CALL 之前放置的任何内容都可以正常工作,而我之后放置的任何内容都无法运行。这是代码的反汇编,以显示地址而不是标签。我已经“修改”以显示那些落入的 DB 行,以便于阅读。

我在编写程序集“程序”(加载到 RAM 中)时从未遇到过这个问题。我所知道的运行“应用程序”(保存在 Flash ROM 中)的唯一问题是它们不能自我修改,而且由于需要分页,因此无法访问单独页面上的数据。这不是自我修改,只有一页......我做错了什么?

0080 218900        LD   HL, 0089h
0083 cd9900 CALL 0099h ; --- App stops here
0086 c38f00 JP 008fh
0089 48656c6c6f00 DB "Hello", 0
008f fd360500 LD (IY+05h), 0
0093 ef RST 28h ; B_CALL (
0094 364c DB 4C36h ; _ReloadAppEntryVecs)
0096 ef RST 28h ; B_CALL (
0097 2740 DB 4027h ; _JForceCmdNoChar) --- App should end here
0099 7e LD A, (HL) ; --- Call goes to here
009a ef RST 28h ; B_CALL (
009b 0445 DB 4504h ; _PutC)
009d fe00 CP 0
009f c8 RET Z
00a0 23 INC HL
00a1 18f6 JR 0099h

最佳答案

显然,您正在组装到地址 0080h。这不可能是正确的,因为地址范围 0000h--3FFFh 被锁定到 ROM page 0。确实,根据 this example,你组装到 4000 小时。所以你的问题是你的 CALL 正在进入固件,而不是你的应用程序的一部分。

关于assembly - Z80 (TI-83+) 在 CALL 上停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2150358/

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