115. Ror absoluto x

completar ROR con el opcode absoluto,X ``0x7E``.

Lección 115 de 356 · tests/chapter_01_cpu/test_115_ROR_absolute_x.py

En este paso, tras la lección 114, añade solo el handler Absoluto,X y la entrada en la tabla en `emulator/cpu/opcodes.py`.

Por qué existe este paso

Esto completa la cobertura de direccionamiento de ROR resolviendo una dirección base little-endian completa más X antes de rotar el byte de memoria seleccionado.

Implementación sugerida

def ror_absolute_x(cpu: CPU):
    addr = absolute_x(cpu)
    ror(cpu, addr)

OPCODE_TABLE = {
    ...
    0x7E: ror_absolute_x,
}

`emulator/cpu/addressing_modes.py::absolute_x captura la base little-endian de 16 bits y luego suma cpu.x. Por tanto, 7E 00 02 con X 0x04 lee/modifica/escribe $0204 a través de instructions.ror. A se mantiene fijo, C/Z/N conservan la semántica de ROR y PC avanza tres bytes. A diferencia del modo página cero,X, el modo absoluto,X no hace wraparound en $00FF`.

Concepto erróneo: X indexa la dirección decodificada, no uno u otro byte del operando ni el valor cargado. Fuera del alcance: la temporización de ciclos y de cruce de página y todo el trabajo de AND, que comienza en la lección 116; no se añadió ningún modo ROR adicional después de esta lección.

Ejecutar esta lección

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