136. Eor zero page
añadir el opcode EOR zero-page ``0x45``.
Lección 136 de 356 · tests/chapter_01_cpu/test_136_EOR_zero_page.py
Por qué existe este paso
EOR necesita una forma de memoria compacta que interprete su operando como una dirección de página cero, lea esa ubicación y aplique el comportamiento común de OR exclusivo.
En este paso, `or_e y EOR immediate ya existen. Añade exactamente lo siguiente a emulator/cpu/opcodes.py`:
def eor_zero_page(cpu: CPU):
addr = zero_page(cpu)
value = cpu.bus.read(addr)
or_e(cpu, value)
OPCODE_TABLE = {
...
0x45: eor_zero_page,
}`emulator/cpu/addressing_modes.py::zero_page obtiene la dirección de un byte; el manejador realiza la lectura de datos por separado y pasa ese valor a instructions.or_e`. A y Z/N pueden cambiar; Carry/Overflow, la memoria, X e Y permanecen invariantes; el opcode más el operando avanza el PC dos bytes.
Concepto erróneo: `$nn` es una dirección en la página cero, no el valor literal del XOR. Fuera de alcance: los modos de EOR indexados y más amplios (137-142) y BIT (143-145).
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_136_EOR_zero_page.py -v