107. Rol absolute

подключить ROL Absolute (опкод ``0x2E``).

Урок 107 из 356 · tests/chapter_01_cpu/test_107_ROL_absolute.py

На этом шаге, после режимов нулевой страницы, добавьте только абсолютный адаптер и запись в таблицу.

Полный пример реализации в производственных местах

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

def rol_absolute(cpu: CPU):
    addr = absolute(cpu)
    rol(cpu, addr)

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

0x2E: rol_absolute,

Зачем нужен этот шаг

Декодирование операнда остаётся в `absolute, тогда как rol` остаётся операцией по целевому адресу, общей для всех режимов памяти.

Инварианты: потребляются два байта операнда в порядке little-endian; `2E 00 02 указывает на $0200`; PC заканчивается на start+3; изменяются только целевая память и C/Z/N.

Заблуждение: байты `00 02 кодируют $0200, а не $0002` и не буквальное значение для вращения.

Вне рамок: Absolute,X — урок 108, ROR начинается с урока 109, а тайминги страниц/тактов не входили в этот переход.

Запустить этот урок

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