194. Pha, неявная адресация

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

Урок 194 из 356 · tests/chapter_01_cpu/test_194_PHA_implied.py

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

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

PHA получает свой источник из регистра CPU A, поэтому опкод $48 не требует режима адресации или операнда и может быть направлен напрямую к `pha(cpu)`.

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

from emulator.cpu.instructions import pha

OPCODE_TABLE = {
    # existing entries
    0x48: pha,
}

Инварианты: сохраните существующие сопоставления; сопоставьте ровно $48 с объектом функции `pha`; читайте только байт опкода; оставьте поведение стека функции из шага 193.

Заблуждение: байт, следующий за $48, — это следующий опкод, а не значение аккумулятора для проталкивания.

Вне рамок: реализация `pha` — это шаг 193. PLA начинается с шага 195; остальные сопоставления инструкций работы со стеком относятся к своим более поздним пронумерованным шагам.

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

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