107. Rol absolute 绝对寻址
接入 ROL Absolute(操作码 ``0x2E``)。
第 107 / 356 · tests/chapter_01_cpu/test_107_ROL_absolute.py
在本步骤中,在零页寻址模式之后,只添加绝对寻址适配器和表项。
生产代码位置中的完整示例实现
`emulator/cpu/opcodes.py::rol_absolute`::
def rol_absolute(cpu: CPU):
addr = absolute(cpu)
rol(cpu, addr)`emulator/cpu/opcodes.py::OPCODE_TABLE`::
0x2E: rol_absolute,本步骤存在的原因
操作数解码留在 `absolute 中,而 rol` 仍然是所有内存寻址模式共用的、面向目标地址的操作。
不变量:以小端序消耗两个操作数字节;`2E 00 02 指向 $0200`;PC 最终为起始位置+3;只有目标内存和 C/Z/N 会发生变化。
常见误解:字节 `00 02 编码的是 $0200,而不是 $0002`,也不是要旋转的字面值。
不在本步骤范围内:Absolute,X 是第 108 课,ROR 从第 109 课开始,跨页/周期时序不属于本次改动的内容。
运行本课
uv run pytest tests/chapter_01_cpu/test_107_ROL_absolute.py -v