196. Pla, неявная адресация

зарегистрировать PLA с неявной адресацией.

Урок 196 из 356 · tests/chapter_01_cpu/test_196_PLA_implied.py

Предварительное условие: шаг 195 добавил `pla. На этом шаге измените только emulator/cpu/opcodes.py, импортировав pla и добавив его запись в OPCODE_TABLE`.

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

Входные данные PLA — это аппаратный стек, выбираемый S. Опкод $68 не имеет операнда, поэтому `CPU.step() должен направлять выполнение напрямую к pla(cpu)`.

Предлагаемая реализация

from emulator.cpu.instructions import pla

OPCODE_TABLE = {
    # existing entries
    0x68: pla,
}

Инварианты: сохраните существующие сопоставления; сопоставьте ровно $68 с `pla`; не используйте обёртку режима адресации; читайте только байт опкода; сохраните эффекты Z/N из шага 195.

Заблуждение: программная память после $68 не поставляет извлечённое значение; его даёт увеличенный адрес стека.

Вне рамок: поведение `pla` — это шаг 195. PHP начинается с шага 197, и его функция и сопоставление опкода не должны вводиться этим переходом.

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

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