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