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