041. 指令 sty

添加核心 STY 指令。

41 / 356 · tests/chapter_01_cpu/test_041_instruction_sty.py

要更新的文件

emulator/cpu/instructions.py

位置

instructions.sty, beside ldy

为什么需要这一步

STY 完成了 Y 寄存器指令对。与 STA 和 STX 一样,它接收一个已解析好的目标地址,并通过 CPU 总线写入寄存器。

完整示例实现

# emulator/cpu/instructions.py
def sty(cpu: CPU, address: int):
    value = cpu.y
    cpu.bus.write(address, value)

重要不变量

  • sty 接收的是地址,而不是数值
  • 写入的数值是 Y,写操作通过 cpu.bus.write 完成
  • Y 和处理器标志位保持不变

常见误区

不要调用 cpu._update_zero_and_negative_flags;存储指令不会根据其写入的字节推导标志位,即使 Y 为 $00 或第 7 位被置位也是如此。

范围之外

  • 所有 STY 操作码处理函数及操作码表条目
  • 新增或修改寻址模式辅助函数
  • 周期时序与写侧硬件效应

运行本课

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