140. Eor absolute y
añadir el opcode EOR absolute,Y ``0x59``.
Lección 140 de 356 · tests/chapter_01_cpu/test_140_EOR_absolute_y.py
Por qué existe este paso
El opcode absoluto indexado por Y proporciona la forma correspondiente de acceso a datos de EOR sin crear una segunda implementación del comportamiento del acumulador o de las flags.
En este paso, siguiendo la lección 139, añade exactamente lo siguiente a `emulator/cpu/opcodes.py`:
def eor_absolute_y(cpu: CPU):
addr = absolute_y(cpu)
value = cpu.bus.read(addr)
or_e(cpu, value)
OPCODE_TABLE = {
...
0x59: eor_absolute_y,
}`emulator/cpu/addressing_modes.py::absolute_y obtiene la palabra base en little-endian y luego suma Y; este auxiliar no aplica una máscara adicional & 0xFFFF. El manejador lee la ubicación indexada y llama a instructions.or_e`. A y Z/N pueden cambiar; Carry/Overflow, la memoria, X e Y permanecen invariantes; el PC avanza tres bytes.
Concepto erróneo: Y indexa la dirección decodificada, no ninguno de los bytes codificados. Fuera de alcance: EOR (indirect,X)/(indirect),Y (141-142) y BIT (143-145).
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_140_EOR_absolute_y.py -v