087. Dey, неявная адресация

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

Урок 87 из 356 · tests/chapter_01_cpu/test_087_DEY_implied.py

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

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

emulator/cpu/opcodes.py: imported `dey` and `OPCODE_TABLE[0x88]`

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

Операнд регистра Y у DEY подразумевается неявно, что позволяет диспетчеризовать напрямую через таблицу без обёртки режима адресации.

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

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

OPCODE_TABLE = {
    # ... existing entries ...
    0x88: dey,
}

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

  • опкод 0x88 диспетчеризуется точно в функцию dey(cpu)
  • операнд не потребляется, и PC продвигается на один байт
  • переполнение Y и обновление флагов Z/N по-прежнему принадлежат dey из теста 086

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

Не создавайте обёртку декремента памяти вокруг dec; DEY изменяет регистр и не выполняет чтение или запись на шину.

Вне рамок

  • предшествующее поведение/отображение INY из тестов 084-085
  • поведение ASL и опкоды, начинающиеся с теста 088
  • тайминги циклов

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

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