135. Eor immediate

добавить опкод EOR immediate ``0x49``.

Урок 135 из 356 · tests/chapter_01_cpu/test_135_EOR_immediate.py

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

Непосредственная форма делает EOR выполнимым с буквальным операндом и устанавливает делегирование на уровне опкодов к общему примитиву исключающего ИЛИ.

На этом шаге, после того как урок 134 вводит `or_e, добавьте or_e в импорт инструкций и добавьте следующее в emulator/cpu/opcodes.py`:

def eor_immediate(cpu: CPU):
    or_e(cpu, immediate(cpu))

OPCODE_TABLE = {
    ...
    0x49: eor_immediate,
}

`emulator/cpu/addressing_modes.py::immediate вызывает CPU.fetch_byte и возвращает значение операнда, сдвигая PC. Обработчику не требуется второе чтение с шины. instructions.or_e` записывает A и обновляет Z/N; Carry/Overflow, память, X и Y остаются неизменными, а опкод вместе с операндом дважды сдвигает PC.

Заблуждение: непосредственный режим предоставляет значение, а не адрес для разыменования. Вне рамок: все обработчики EOR с адресацией по памяти (уроки 136-142) и BIT (143-145).

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

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