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