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