085. Iny, неявная адресация

Подключить опкод INY с неявной адресацией.

Урок 85 из 356 · tests/chapter_01_cpu/test_085_INY_implied.py

На этом шаге используйте instructions.iny из теста 084 и добавьте только диспетчеризацию.

Расположение в продакшн-коде и символы

emulator/cpu/opcodes.py: imported `iny` and `OPCODE_TABLE[0xC8]`

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

Поскольку Y подразумевается инструкцией INY, таблица опкодов может диспетчеризовать напрямую в функцию инструкции без декодирования операнда.

Предлагаемая реализация для этого шага

# emulator/cpu/opcodes.py
from emulator.cpu.instructions import iny  # alongside existing imports

OPCODE_TABLE = {
    # ... existing entries ...
    0xC8: iny,
}

Важные инварианты

  • опкод 0xC8 отображается точно на функцию iny(cpu)
  • однобайтовая инструкция продвигает PC на один
  • переполнение и поведение Z/N остаются в функции инструкции из теста 084

Частое заблуждение

Не используйте immediate(cpu) только потому, что таблице нужен вызываемый объект; у INY нет байта операнда, и немедленное декодирование испортило бы PC.

Вне рамок

  • поведение и отображение опкода DEY (тесты 086-087)
  • последующие формы инструкции ASL
  • тайминги циклов

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

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