156. Cpx inmediato
expone CPX inmediato como opcode ``0xE0``.
Lección 156 de 356 · tests/chapter_01_cpu/test_156_CPX_immediate.py
Por qué existe este paso
CPX inmediato expone primero la comparación mediante la ejecución de la CPU con un valor literal y sin búsqueda en la memoria de datos.
En este paso, después de que la lección 155 haya creado la instrucción, haz estas adiciones en `emulator/cpu/opcodes.py`:
from emulator.cpu.instructions import (..., cpx)
def cpx_immediate(cpu: CPU):
cpx(cpu, immediate(cpu))
OPCODE_TABLE = {
...
0xE0: cpx_immediate,
}`emulator/cpu/addressing_modes.py::immediate devuelve CPU.fetch_byte()` directamente como valor comparado. CPX cambia solo C/Z/N; X, la memoria y Overflow permanecen invariantes, y el opcode más el operando avanzan PC dos bytes.
Concepto erróneo: el byte inmediato es un valor, no una dirección que requiere una lectura del bus. Fuera de alcance: CPX de página cero y absoluto (157-158), y todos los símbolos y opcodes de CPY (159-162).
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_156_CPX_immediate.py -v