40得票3回答
Game Boy:什么构成了“半进位”?

Game Boy的Z80 CPU有一个半进位标志位,但我似乎找不到关于何时设置/清除它的信息。 目前我的理解是,任何8位加法、减法、移位或旋转操作(可能还有其他操作)都会将其设置为结果的第4位(?),而DAA指令以某种方式设置/使用它。 我不确定的是16位指令如何影响它以及是否受某些寄存器的影响。

28得票2回答
Z80上的溢出和进位标志

我已经完成在我的Z80核心上实现ADD A,r一组操作码。我对进位和溢出标志有点困惑,但我想向社区请教以确认我的答案是否正确。 从我所看到的情况来看,Z80中的ALU并不关心有符号/无符号运算,它只是将比特加起来。这意味着如果两个8位值相加导致一个9位值,那么进位标志将被设置。这包括两个负的...

27得票14回答
你最喜欢的ZX Spectrum开发工具是什么?

您最喜欢的汇编器、编译器、环境和解释器是什么?这些都是为了好老式的ZX Spectrum计算机设计的。

23得票3回答
Z80:如何将16位和8位寄存器相加?

如何使用进位标志将一个16位寄存器和一个8位寄存器相加(例如,HL和A)?

22得票4回答
Z80的DAA指令

非常抱歉这个问题似乎很小,但我似乎找不到答案 - 我正要在我的Z80模拟器中实现DAA指令,并且我注意到在Zilog手册中,它旨在调整累加器进行二进制编码的十进制算术运算。它说该指令旨在在加法或减法指令之后立即运行。 我的问题是: 如果在其他指令之后运行该指令会发生什么? 它如何知道先前...

19得票7回答
我该在哪里找到一个8080到x86汇编语言转换工具?

编辑,好消息! 10年后,我决定坐下来实现这个想法。我编写了必要的convert-8080-to-z80-or-x86和convert-z80-to-x86工具,将Sargon代码转换为x86代码,增加了搜索深度,如下所述,并基本实现了所有目标,请参见项目网站。 对于一个复古计算项目,我需...

16得票1回答
TI汇编:nostub、Ion、MirageOS和z88dk C之间的区别

我是TI编程平台的新手。我希望能得到一些指导,了解最佳路线。 我需要制作一系列算术和绘图函数,可以在TI-83(p)和84p型号之间兼容。 我很高兴发现有大量的信息可用于此平台,但感到不知所措。而且很多资料都很老旧。 我认为 BASIC 不适合我的目的。 另一个选择是z80汇编。但我看到有三种...

15得票1回答
Zilog Z80操作码实现

我目前正在开发一款好玩的GameBoy模拟器,但是我在理解一些基本操作码的实现方式时遇到了一些问题。 目前我正在实现AND操作;前几个(0xA0-> 0xA3; 0xA6&0xA7)都很简单,但对于寄存器H,L的AND操作有点不同。 您可以通过以下链接下载z80文档: um0080.pdf...

14得票8回答
使用C或C++编写一个图形化的Z80模拟器

我希望自己对Z80处理器编写一个简单模拟器感兴趣。我没有这方面的编程经验。使用基于C语言的语言对我来说是最熟悉的。 我需要什么才能完成这个项目?有哪些好的教程/参考资料可以帮助我? 我还想要一个教程,用于编写TI-84 Plus计算器的ROM转储应用程序,以便我可以将其ROM与此模拟器一起...

14得票2回答
如何将寄存器加载到自身的指令有什么作用?

在查看Gameboy的指令集时,我遇到了诸如以下指令:LD A, A LD B, B LD C, C LD D, D ... 在这个表格中,每条指令都有自己的操作码,这让我觉得它们由于可能的操作码数量的限制而非常重要。 起初我认为它可能是对该寄存器中的指针进行解引用并将值存储到该指针中(就...