142. Eor indirect y

añadir el opcode EOR (indirect),Y ``0x51``.

Lección 142 de 356 · tests/chapter_01_cpu/test_142_EOR_indirect_y.py

Por qué existe este paso

Esto completa la cobertura de direccionamiento de EOR con el acceso a punteros post-indexado, usando el ayudante indirect,Y antes de pasar el valor obtenido a la primitiva EOR.

En este paso, la lección 141 completa la otra forma indirecta de EOR. Añade exactamente lo siguiente a `emulator/cpu/opcodes.py`:

def eor_indirect_y(cpu: CPU):
    addr = indirect_y(cpu)
    value = cpu.bus.read(addr)
    or_e(cpu, value)

OPCODE_TABLE = {
    ...
    0x51: eor_indirect_y,
}

`emulator/cpu/addressing_modes.py::indirect_y primero lee el puntero little-endian envuelto desde la página cero y después suma Y a ese destino. El manejador lee la dirección resultante y pasa su valor a or_e`. A y Z/N pueden cambiar; Carry, Overflow, X, Y y la memoria permanecen invariantes; el PC avanza dos bytes.

Concepto erróneo: Y no selecciona los bytes del puntero en página cero; indexa el destino ya decodificado. Fuera de alcance: el comportamiento y los opcodes de BIT son las lecciones 143-145.

Ejecutar esta lección

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