083. Dex 隐含寻址

接入 DEX 隐含寻址操作码。

83 / 356 · tests/chapter_01_cpu/test_083_DEX_implied.py

在这一步中,使用测试 082 中的 instructions.dex,仅添加其操作码接入。

生产代码位置与符号

emulator/cpu/opcodes.py: imported `dex` and `OPCODE_TABLE[0xCA]`

本步骤存在的原因

DEX 没有显式操作数,因此其操作码直接映射到 dex(cpu),无需寻址包装器。

本步骤的实现建议

# emulator/cpu/opcodes.py
from emulator.cpu.instructions import dex  # alongside existing imports

OPCODE_TABLE = {
    # ... existing entries ...
    0xCA: dex,
}

重要不变量

  • 操作码 0xCA 解析为精确的 dex 函数
  • 没有寻址辅助函数消耗字节,因此 PC 恰好推进一位
  • 测试 082 的函数仍负责 X 的回绕以及 Z/N 标志

常见误解

隐含操作数就是 X 本身;不要获取一个字节并将其当作地址,也不要递减内存。

不在本步骤范围内

  • 测试 080-081 中已完成的 INX 行为/映射
  • 测试 084-087 的 INY/DEY 工作
  • 周期计时

运行本课

uv run pytest tests/chapter_01_cpu/test_083_DEX_implied.py -v