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