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