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