075. Inc absolute x
подключить INC Absolute,X (`0xFE`).
Урок 75 из 356 · tests/chapter_01_cpu/test_075_INC_absolute_x.py
На этом шаге добавьте emulator/cpu/opcodes.py:inc_absolute_x и OPCODE_TABLE[0xFE] после остальных форм INC из уроков 071–074.
Зачем нужен этот шаг
Повторно используйте addressing_modes.absolute_x, чтобы декодирование базового адреса и индексация X оставались вне примитива чтения-модификации-записи INC.
Рекомендуемая реализация в emulator/cpu/opcodes.py:
def inc_absolute_x(cpu: CPU):
addr = absolute_x(cpu)
inc(cpu, addr)Добавьте следующую запись в существующую OPCODE_TABLE:
0xFE: inc_absolute_x,Инварианты: потребляются два байта операнда в порядке little-endian; X прибавляется к 16-битному базовому адресу; PC продвигается на два после извлечения опкода, что даёт трёхбайтовую инструкцию; результат в памяти приводится по модулю 256; только Z/N следуют за ним.
Типичная ошибка: индексация absolute-X не использует перенос через ноль нулевой страницы. Возможен переход через границу страницы, поэтому $02FF,X при X=1 разрешается в $0300.
Вне области действия: DEC начинается с урока 076. Учёт тактов и задержки при пересечении страниц не входят в этот шаг.
Запустить этот урок
uv run pytest tests/chapter_01_cpu/test_075_INC_absolute_x.py -v