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