108. Rol absoluto x
conectar ROL Absolute,X (opcode ``0x3E``).
Lección 108 de 356 · tests/chapter_01_cpu/test_108_ROL_absolute_x.py
En este paso, completa la secuencia de ROL añadiendo únicamente el adaptador Absolute,X y la entrada de despacho tras la lección 107.
Implementación de ejemplo completa en las ubicaciones de producción
`emulator/cpu/opcodes.py::rol_absolute_x`::
def rol_absolute_x(cpu: CPU):
addr = absolute_x(cpu)
rol(cpu, addr)`emulator/cpu/opcodes.py::OPCODE_TABLE`::
0x3E: rol_absolute_x,Por qué existe este paso
`absolute_x centraliza la decodificación little-endian y la indexación con X; rol` se encarga únicamente de la semántica de la operación.
Invariantes: consume dos bytes de operando, decodifica la base de 16 bits y luego suma X; `3E 00 02 con X=0x04 apunta a $0204` y el PC termina en start+3. El comportamiento C/Z/N de la primitiva de memoria permanece sin cambios.
Concepto erróneo: no indexes un único byte de operando ni apliques el ajuste de página cero; este modo indexa la base absoluta de 16 bits ya decodificada.
Fuera de alcance: las primitivas de ROR empiezan en 109 y los opcodes de ROR en 111; el comportamiento de cruce de página y de lectura/modificación/escritura con precisión de ciclos es trabajo posterior.
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_108_ROL_absolute_x.py -v