101. Lsr absoluto x

conectar LSR Absolute,X (opcode ``0x5E``).

Lección 101 de 356 · tests/chapter_01_cpu/test_101_LSR_absolute_x.py

En este paso, añade únicamente el adaptador final de modo de direccionamiento de LSR y la entrada de despacho correspondiente. La primitiva de instrucción y los demás modos de LSR de las lecciones 095-100 son prerrequisitos.

Implementación sugerida en las ubicaciones de producción

`emulator/cpu/opcodes.py::lsr_absolute_x`::

def lsr_absolute_x(cpu: CPU):
    addr = absolute_x(cpu)
    lsr(cpu, addr)

`emulator/cpu/opcodes.py::OPCODE_TABLE`::

0x5E: lsr_absolute_x,

Por qué existe este paso

Los manejadores de opcode traducen los operandos codificados en direcciones efectivas; `instructions.lsr` permanece independiente del modo de direccionamiento.

Invariantes: `absolute_x(cpu) consume el operando de dos bytes en little-endian, suma cpu.x y deja el PC tres bytes después del opcode; lsr realiza la lectura/modificación/escritura y las actualizaciones de banderas en esa dirección. Así, 5E 00 02 con X=0x04 apunta a $0204`.

Concepto erróneo: el operando no es ni el valor a desplazar ni una dirección de página cero de 8 bits; no sumes X a un solo byte del operando ni llames a `lsr_a`.

Fuera de alcance: el comportamiento y los opcodes de ROL/ROR comienzan en la lección 102 en adelante; la precisión de ciclos y el tiempo de cruce de página no forman parte de este paso.

Ejecutar esta lección

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