160. Cpy immediate

добавить непосредственный режим CPY как опкод ``0xC0``.

Урок 160 из 356 · tests/chapter_01_cpu/test_160_CPY_immediate.py

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

Непосредственный режим CPY раскрывает сравнение Y через исполнение CPU с использованием буквального байта без дополнительного чтения памяти данных.

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

from emulator.cpu.instructions import (..., cpy)

def cpy_immediate(cpu: CPU):
    cpy(cpu, immediate(cpu))

OPCODE_TABLE = {
    ...
    0xC0: cpy_immediate,
}

`emulator/cpu/addressing_modes.py::immediate возвращает результат CPU.fetch_byte()` как значение. CPY меняет только C/Z/N; Y, память и Overflow остаются неизменными, а опкод вместе с операндом сдвигают PC на два байта.

Заблуждение: непосредственный режим не указывает на адрес на шине, и CPY не сохраняет результат вычитания в Y. Вне рамок: CPY для нулевой страницы и абсолютного режима (уроки 161-162).

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

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