204. Tsx, неявная адресация
подключить неявный опкод TSX $BA.
Урок 204 из 356 · tests/chapter_01_cpu/test_204_TSX_implied.py
Зачем нужен этот шаг
На этом шаге цели — импорт инструкций и `OPCODE_TABLE в emulator/cpu/opcodes.py; emulator/cpu/instructions.py::tsx предоставлен шагом 203. Этот переход делает TSX доступным для emulator/cpu/cpu.py::CPU.step`.
Предлагаемая реализация
from emulator.cpu.instructions import tsx # add to the existing import
OPCODE_TABLE = {
# existing entries
0xBA: tsx,
}Инвариант: $BA — это однобайтовая инструкция с неявной адресацией. Выборка опкода продвигает PC один раз, затем `tsx(cpu)` копирует S в X, обновляет только Zero/Negative и оставляет S без изменений. Распространённое заблуждение — выбирать байт операнда или пропускать поведение флагов из-за того, что адресация неявная.
Вне рамок: вспомогательные функции для флага Decimal и инструкции управления флагами начинаются с шага 205; учёт циклов и последующие возможности CPU здесь не меняются.
Запустить этот урок
uv run pytest tests/chapter_01_cpu/test_204_TSX_implied.py -v