139. Eor absolute x

añadir el opcode EOR absolute,X ``0x5D``.

Lección 139 de 356 · tests/chapter_01_cpu/test_139_EOR_absolute_x.py

Por qué existe este paso

Los programas necesitan EOR sobre datos de dirección completa indexados por X; este paso conecta esa forma de dirección efectiva con la semántica de OR exclusivo ya probada.

En este paso, la lección 138 proporciona el EOR absoluto sin indexar. Añade exactamente lo siguiente a `emulator/cpu/opcodes.py`:

def eor_absolute_x(cpu: CPU):
    addr = absolute_x(cpu)
    value = cpu.bus.read(addr)
    or_e(cpu, value)

OPCODE_TABLE = {
    ...
    0x5D: eor_absolute_x,
}

`emulator/cpu/addressing_modes.py::absolute_x obtiene la palabra base en little-endian y luego suma X; 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: X indexa la dirección decodificada de 16 bits, no su byte de operando bajo. Fuera de alcance: absolute,Y y EOR indirecto (140-142) y BIT (143-145).

Ejecutar esta lección

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