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