138. Eor absolute

añadir el opcode EOR absolute ``0x4D``.

Lección 138 de 356 · tests/chapter_01_cpu/test_138_EOR_absolute.py

Por qué existe este paso

EOR absolute permite el OR exclusivo contra cualquier ubicación de memoria de la CPU, manteniendo la decodificación de direcciones en little-endian fuera de la primitiva de instrucción.

En este paso, después de las dos formas de página cero, añade exactamente lo siguiente a `emulator/cpu/opcodes.py`:

def eor_absolute(cpu: CPU):
    addr = absolute(cpu)
    value = cpu.bus.read(addr)
    or_e(cpu, value)

OPCODE_TABLE = {
    ...
    0x4D: eor_absolute,
}

`emulator/cpu/addressing_modes.py::absolute usa CPU.fetch_word para decodificar primero el byte bajo y luego el byte alto. El manejador lee la dirección resultante y delega el XOR y las flags Z/N en instructions.or_e`. Carry/Overflow, la memoria, X e Y permanecen invariantes; el opcode más la palabra avanza el PC tres bytes.

Concepto erróneo: la palabra en little-endian es la ubicación del valor, no el valor en sí. Fuera de alcance: los modos de EOR indexados/indirectos (139-142) y BIT (143-145).

Ejecutar esta lección

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