106. Rol página cero x
conectar ROL Zero Page,X (opcode ``0x36``).
Lección 106 de 356 · tests/chapter_01_cpu/test_106_ROL_zero_page_x.py
En este paso, amplía la lección 105 con únicamente el adaptador de página cero indexada y la entrada de despacho.
Implementación de ejemplo completa en las ubicaciones de producción
`emulator/cpu/opcodes.py::rol_zero_page_x`::
def rol_zero_page_x(cpu: CPU):
addr = zero_page_x(cpu)
rol(cpu, addr)`emulator/cpu/opcodes.py::OPCODE_TABLE`::
0x36: rol_zero_page_x,Por qué existe este paso
Reutiliza el asistente de direccionamiento ya establecido para no duplicar la política de ajuste en la primitiva de instrucción.
Invariantes: se consume un byte de operando; la dirección efectiva es `(operand + cpu.x) & 0xFF; el PC termina en start+2; rol muta solo ese byte con el comportamiento C/Z/N de la lección 102. Por tanto, la base 0xFE más X 0x03 apunta a $0001`.
Concepto erróneo: la indexación de página cero no se desborda hacia `$0101` y no es una indexación absoluta de 16 bits; es obligatorio ajustar a ocho bits.
Fuera de alcance: los modos absolutos son las lecciones 107-108, ROR empieza en 109, y la secuenciación de lectura/modificación/escritura indexada con precisión de ciclos es trabajo posterior.
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_106_ROL_zero_page_x.py -v