083. Dex, неявная адресация
Подключить опкод DEX с неявной адресацией.
Урок 83 из 356 · tests/chapter_01_cpu/test_083_DEX_implied.py
На этом шаге используйте instructions.dex из теста 082 и добавьте только интеграцию его опкода.
Расположение в продакшн-коде и символы
emulator/cpu/opcodes.py: imported `dex` and `OPCODE_TABLE[0xCA]`Зачем нужен этот шаг
У DEX нет явного операнда, поэтому его опкод отображается напрямую на dex(cpu) без обёртки адресации.
Предлагаемая реализация для этого шага
# emulator/cpu/opcodes.py
from emulator.cpu.instructions import dex # alongside existing imports
OPCODE_TABLE = {
# ... existing entries ...
0xCA: dex,
}Важные инварианты
- опкод 0xCA разрешается точно в функцию
dex - ни один помощник адресации не потребляет байты, поэтому PC продвигается ровно на один
- функция из теста 082 по-прежнему отвечает за переполнение X и флаги Z/N
Частое заблуждение
Неявным операндом является сам регистр X; не считывайте байт и не трактуйте его как адрес, не декрементируйте память.
Вне рамок
- уже завершённое поведение/отображение INX из тестов 080-081
- работа над INY/DEY в тестах 084-087
- тайминги циклов
Запустить этот урок
uv run pytest tests/chapter_01_cpu/test_083_DEX_implied.py -v