【发布时间】:2022-11-03 19:10:16
【问题描述】:
我是 CA65 的新手,正在尝试将 NEASM 项目转移到它。我翻译了所有东西,它就建立起来了。当我跑步时,我什么也得不到。只是黑屏。潜水更深我有一个无限循环。增加 Y (INY) 似乎有问题,然后我设置的任何东西都不需要。
您可以看到,在 8505 处的 INY 之后,Y 变为 1。将我在 $84A8 处的变量设置为 Y 应该将其更改为 $01,但事实并非如此。因此,我进入了一个无限循环。我在这里做错了吗?自从我编写汇编程序以来已经有一段时间了,但这似乎很容易。
如果我做错了什么或者您需要更多信息,请告诉我。
【问题讨论】:
-
“我有 $84A8 的变量”.您使用的是哪个映射器? IIRC 所有常用的映射器都有 ROM(可能还有映射器控制寄存器),价格为 8xxx 美元。
-
谢谢您的答复。我现在应该使用 Mapper 0,这就是我在 NEASSM 中使用的。这是一个很好的观点。我想我不明白的是我们如何控制我们的变量在内存中的哪个位置被分配给 CA65。我知道我在“ZEROPAGE”段中有一些指针变量,因为那是它们需要的地方。但是我的其余变量都在“CODE”段中,这是我认为它们需要的位置。我认为链接器在此之外处理了内存放置。我想我需要对 CA65 做更多的研究。
-
CODE 段将在 ROM 中。对于变量,您可能应该使用 DATA 或 BSS 段。
-
如果您使用的是 Mapper 0,那么您的 RAM 就是
$0000-$07FF范围,这就是您所得到的。其他一切都是 ROM 或硬件寄存器。