gpt4 book ai didi

opcode - 在chip-8操作码FX65中增加I

转载 作者:行者123 更新时间:2023-12-03 16:40:37 41 4
gpt4 key购买 nike

在构建芯片 8 仿真器时,我遇到了芯片 8 信息的 2 个主要来源似乎不同的问题,这对整个芯片 8 解释器有影响。

一方面,我们有 wikipedia , 在操作码 FX65 下告诉我们

“用从地址 I 开始的内存中的值填充 V0 到 VX(包括 VX)。对于每个写入的值,I 增加 1。”

其中“对于每个写入的值,I 增加 1”。是重要的部分。

遵循此结果会产生以下代码:

for(int i = 0; i <= ((opcode & 0x0F00) >> 8); ++i) {
V[i] = memory[I];
++I;
}

另一方面,我们有 chip-8 reference by cowgod ,几乎每个教程都链接到的引用,它告诉我们以下内容

“解释器从位置 I 开始的内存读取值到寄存器 V0 到 Vx。”

应用此逻辑会产生以下代码(这也是大多数芯片 8 实现使用的实现):
for(int i = 0; i <= ((opcode & 0x0F00) >> 8); ++i) {
V[i] = memory[I + i];
}

这两者之间的主要区别在于 I 是否递增。由于 I 是仿真器的寄存器索引,因此程序能否正常工作非常重要。

我想知道的是这个操作码的哪个实现是正确的。

最佳答案

似乎没有明确的答案,因为似乎没有明确的引用。

This reference似乎有同样的问题,同样的歧义

This (contemporary) reference (第 113 页),然而,说“I = I + X + 1”。作者是发明家 Joseph Weisbecker - 我想他会知道的。

关于opcode - 在chip-8操作码FX65中增加I,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51179156/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com