207. Opcodes implícitos de control de flags

conectar los opcodes implícitos de control de flags.

Lección 207 de 356 · tests/chapter_01_cpu/test_207_flag_control_implied_opcodes.py

Por qué existe este paso

En este paso, actualiza la importación de instrucciones y `OPCODE_TABLE de emulator/cpu/opcodes.py. Las funciones del paso 206 se vuelven ejecutables a través de emulator/cpu/cpu.py::CPU.step`.

Implementación sugerida

# Add clc, sec, cli, sei, cld, sed, clv to the instruction import.
OPCODE_TABLE = {
    # existing entries
    0x18: clc,
    0x38: sec,
    0x58: cli,
    0x78: sei,
    0xD8: cld,
    0xF8: sed,
    0xB8: clv,
}

Invariante: cada mapeo despacha directamente a una operación de un argumento; cada instrucción ocupa un byte, así que solo la obtención del opcode avanza PC al byte siguiente y únicamente cambia el flag correspondiente. El error conceptual habitual es añadir un modo de direccionamiento que consuma un operando, o intercambiar los pares de opcodes de activación/desactivación.

Fuera de alcance: NOP y el opcode $EA corresponden a los pasos 208-209, y la semántica de entrega de interrupciones es comportamiento posterior.

Ejecutar esta lección

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