我正在尝试用 C 编写 Gameboy 模拟器,目前正在决定如何实现以下行为:
- 两个 8 位寄存器可以组合起来当作一个 16 位寄存器处理
- 更改配对中 8 位寄存器之一的值应更改组合寄存器的值
例如,寄存器 A 和 F 是 8 位寄存器,可以联合用作 16 位寄存器 AF。但是,当寄存器 A 和 F 的内容发生变化时,这些变化应反映在后续对寄存器 AF 的引用中。
如果我将寄存器 AF 实现为 a uint16_t*
,我可以将寄存器 A 和 F 的内容存储为uint8_t*
分别指向寄存器 AF 的第一个和第二个字节吗?如果没有,任何其他建议将不胜感激:)
编辑:澄清一下,这是与 Z80 非常相似的架构