074. Inc absolute

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

Урок 74 из 356 · tests/chapter_01_cpu/test_074_INC_absolute.py

На этом шаге, при уже импортированном inc, добавьте только emulator/cpu/opcodes.py:inc_absolute и OPCODE_TABLE[0xEE].

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

addressing_modes.absolute централизует декодирование двухбайтового адреса в порядке little-endian, тогда как существующий примитив INC выполняет чтение-модификацию-запись.

Рекомендуемая реализация в emulator/cpu/opcodes.py:

def inc_absolute(cpu: CPU):
    addr = absolute(cpu)
    inc(cpu, addr)

Добавьте следующую запись в существующую OPCODE_TABLE:

0xEE: inc_absolute,

Инварианты: младший байт операнда предшествует старшему; absolute(cpu) потребляет оба и продвигает PC дважды; EE 00 02 указывает на $0200; общая длина инструкции — три байта; INC обновляет память и Z/N, но не регистры, Carry или Overflow.

Типичная ошибка: не меняйте порядок байтов операнда и не передавайте прочитанное значение байта в inc; вспомогательная функция возвращает эффективный 16-битный адрес.

Вне области действия: inc_absolute_x и OPCODE_TABLE[0xFE] — это урок 075.

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

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