081. Inx implied

Conectar el opcode implícito INX.

Lección 81 de 356 · tests/chapter_01_cpu/test_081_INX_implied.py

En este paso, añade únicamente la integración del opcode INX después de que el Test 080 haya proporcionado instructions.inx.

Ubicación y símbolos en producción

emulator/cpu/opcodes.py: imported `inx` and `OPCODE_TABLE[0xE8]`

Por qué existe este paso

INX tiene direccionamiento implícito, por lo que el despacho puede llamar directamente a la función de instrucción. No se necesita ningún wrapper ni ayudante de modo de direccionamiento.

Implementación sugerida para este paso

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

OPCODE_TABLE = {
    # ... existing entries ...
    0xE8: inx,
}

Invariantes importantes

  • el opcode 0xE8 despacha exactamente a la función inx(cpu)
  • no se obtiene ningún byte de operando, así que CPU.step avanza el PC en un byte
  • el ajuste circular del registro y las actualizaciones de Z/N siguen siendo responsabilidad del inx del test 080

Concepto erróneo habitual

No crees un wrapper inx_implied; las instrucciones implícitas pueden ser entradas directas de la tabla, y un wrapper no añadiría ningún comportamiento de decodificación.

Fuera de alcance

  • el comportamiento de la instrucción dex del test 082 y el mapeo DEX del test 083
  • las instrucciones INY/DEY y de desplazamiento posteriores
  • el temporizado de ciclos

Ejecutar esta lección

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