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