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