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