Dem*_*jon 9 assembly z80 emulation gameboy
你好我正在为Game Boy写一个模拟器.
我用这个参考:Gameboy CPU(LR35902)指令集
该文件说明了操作码:
0xE2 LD (C),A
Run Code Online (Sandbox Code Playgroud)
和
0xF2 LD A,(C)
Run Code Online (Sandbox Code Playgroud)
长度为2.
该游戏男孩CPU手册说分别,这些说明:
将地址$ FF00 +寄存器C的值放入A.
和
将A放入地址$ FF00 +寄存器C.
我认为它的长度为1,因为操作码是自给自足的,它不需要另外的值来解释.如果它的长度为2,那么第二个字节的目的是什么?
Gab*_*iro 13
你是绝对正确的.LD (C),A并且LD A,(C)是1个字节长.
我甚至通过电子邮件向负责人(Pastraiser)发送电子邮件要求澄清(或者他是否可以修复网站),但我没有回答.
困扰我的另一件事是prefix CB被认为是1字节长并消耗4个周期的事实.并且所有扩展指令都被认为是2个字节长并且消耗8个周期(如果它们访问则为16个(HL)).对我来说,留空以下空间会更有意义,Prefix CB因此很明显所有扩展指令都已包含其前缀的大小和处理周期.
困扰我的另一件事是STOP长度为2 的事实.它实际上只有一个字节长.Gameboy Classic上存在一个硬件错误,导致STOP跳过a后面的指令.因此,任天堂开始告诉开发人员NOP总是追加一个STOP.因此,为了100%正确,我认为STOP是(1,4)而不是(2,4).Gameboy Color上不存在此问题.
| 归档时间: |
|
| 查看次数: |
1135 次 |
| 最近记录: |