9得票2回答
我能通过一些16位的魔法将这个转化为一个循环吗?

我现在开始学习6502汇编语言,但是在处理需要处理超过8位数字的循环时遇到了问题。 具体来说,我想要循环一些内存位置。用伪代码表示,我的目标是这样的: // Address is a pointer to memory int* address = 0x44AD; ...

9得票4回答
在汇编中编写while循环

我正在尝试使用6502处理器的汇编语言写一个while循环,但我无法弄清楚如何编写十六进制代码。我看到有些示例使用缩写来标记循环开始和结束的位置,但我没有看到实际的十六进制代码。 两个有用的代码是: 1. 将内存中的一个字节与X寄存器进行比较(缩写:CPX,十六进制:EC)。如果相等,则将...

9得票1回答
单独测试中6502的中断行为与在Commodore PET中的行为有何不同

我正在使用FPGA构建Commodore PET。我在Kansas Lava中实现了自己的6502核心(代码可在https://github.com/gergoerdi/mos6502-kansas-lava找到),通过在其周围放置足够的IO(https://github.com/gergoe...

9得票2回答
C64汇编渲染精灵

我已经使用ca65汇编器和ld65链接器为Commodore 64编写了一个短小的程序。该程序应该在显示屏中心附近呈现一个实心正方形精灵,但我并没有看到任何渲染。 以下是我的汇编代码: .segment "CODE" ; set sprite pointer index ...

8得票8回答
从6502汇编中获取随机数

我正尝试使用JSR $E09A在Commodore 64 (C64)上生成一系列随机数,并从$63和$64中检索数字。(根据我看到的所有文档,这与在BASIC中使用RND(0)时相同。但是不能迭代。以下内容将在单独执行时起作用,并放置不同的数字在$63和$64中。 . C000 A5 00...

8得票11回答
经典汇编语言书籍是否不使用x86?

我正在寻找详细介绍汇编编程原理且不以x86为目标架构的文本。我没有找到最近的类似书籍,但我希望在20世纪70年代和80年代有一些好的书籍,当时整个应用程序仍然使用汇编语言编写。所使用的架构也应该是比较干净的设计之一,例如6502或VAX。

8得票2回答
为什么6502的中断标志的初始状态是1?

我正在模拟6502处理器,并且已经接近完成(现在处于测试阶段)。我正在使用来自nesdev网站的一些NES测试,并且它告诉我初始时中断标志和未使用的第五个标志都应该设置为1(即禁用中断),但是为什么? 我可以理解未使用的标志部分,因为它是...嗯...未使用的,但是我不理解中断标志。我尝试在谷...

8得票3回答
NMI和IRQ中断

我正在尝试查找有关6502处理器如何处理中断的信息,但我感到非常困惑。我看过一些相关示例,但它们就像普通的子程序。 我有一些使用8086处理器的经验,并且记得有一些代码可以处理不同的中断。 首先,如果有人能够给我解释NMI和IRQ之间的区别,并附上一些代码,我将不胜感激。更进一步地说,如果...

8得票1回答
如何在真实硬件上测试自制的任天堂娱乐系统软件?

几年前,我在课程项目中实现了一款NES游戏,使用6502汇编语言编写。我只在NES模拟器上运行过它,但我想看到它在真正的硬件上运行。有没有开发板可以做到这一点?我知道这有点棘手,需要使用映射器芯片等,但我愿意限制使用普通的映射器(比如MMC3)。

8得票2回答
在Commodore 64上使用汇编语言编写磁盘文件

我正在尝试学习如何使用内核例程编写磁盘文件,遵循这个Codebase64教程的步骤。 下面是我用Acme交叉汇编器编写的程序。它无法打开文件,并显示错误消息:"FILE NOT OPENED"。 ; Definitions SETNAM = $FFBD SETFLS = $FFBA OPE...