assembly - M68000 基本问题,Neo Geo - 相关

标签 assembly 68000

我想用摩托罗拉68000汇编器写一个程序,目标平台是Neo Geo(九十年代的游戏机);这个问题很严重,我有一个我想实现的特定项目并且我有编程经验(虽然我现在主要是 Perl/R 编程,但我以前只接触过一点汇编编程)。

Neo Geo 没有太多可用的文档,但我有一份来自 Alexander Stante 的文档,其中包含有关格式和存储 Sprite 的位置、内存映射、内存映射寄存器的位置、图形和声音系统的信息作品等

因此应该可以用 68K 汇编器编写程序,在 PC 上组装并从 Neo Geo(或模拟器,其中有很多可供测试)运行它。

我确实有一些 M68 汇编器的背景知识,这是我计算机科学硕士期间的一些类(class)(10 年前);我们在 Sun Sparcstation 上组装并将程序发送到一个附加的盒子,该盒子基本上有一个 M68K,里面有一些 RAM,没有太多其他东西。因此可以将“纯”目标代码加载到 CPU 中。

现在,我对 Neo Geo 不了解的是我必须将汇编代码放入哪种“格式”。

即如果我组装了一个我用 68K 汇编编写的程序,我怎样才能使仿真器认为它是一个 ROM 镜像,或者我怎样才能构建一个 CD(或 CDZ,就此而言),它是一个物理 Neo Geo CD会接受吗?它会检查文件名还是魔术头?!所以我的问题是,如何将组装好的目标代码转换为正确的“文件格式”?! (抱歉,我什至不知道这个词是否合适)。

最佳答案

我不能说出 Neo Geo 平台的细节,也不能说出它的模拟器中常见的格式。

但是,它很可能是某种 ROM 镜像。对于 68K 系列,您会在 ROM 的一端找到引导向量。您需要花一些时间阅读 manual .处理器将首先使用表 B-1 从内存中获取值。所以0x0处的32位需要有初始栈指针,0x4需要初始PC。

您需要研究一些现有的 Neo Geo 游戏的图像,看看您是否可以使用这些初始值跟踪代码。模拟器可能以压缩格式或带有某种标题的格式存储它们的图像;你必须自己解决这个问题。

编辑:我还应该补充一点,您最初可能会对 68K 是正确 端序,即大端序这一事实感到困惑。

关于assembly - M68000 基本问题,Neo Geo - 相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4930040/

相关文章:

assembly - 如何在 68k 汇编或一般情况下实现浮点 IEEE754 除法?

assembly - 你还有什么古老的旧学校代码?

assembly - 为什么地址寄存器后递增是(A0)+

assembly - 如果函数相等则 NASM 程序集跳转

assembly - ARM汇编中有小寄存器吗?

汇编,根据寄存器的值获取字符串中的特定字符

c - 如何在 C 编译器的 ASM 输出中启用 DIV 指令

c - 程序集 MMX 点积段错误

linker - 合并 2 个或多个 ELF 文件的最简单方法

assembly - 68k/x86 上的左移溢出?