135. EOR 立即数

将 EOR immediate 暴露为操作码 ``0x49``。

135 / 356 · tests/chapter_01_cpu/test_135_EOR_immediate.py

此步骤存在的原因

立即寻址形式使 EOR 能够以字面量操作数执行,并建立起操作码层向共享异或原语的委托机制。

在此步骤中,继第 134 课引入 `or_e 之后,请将 or_e 添加到指令导入中,并在 emulator/cpu/opcodes.py` 中添加以下内容:

def eor_immediate(cpu: CPU):
    or_e(cpu, immediate(cpu))

OPCODE_TABLE = {
    ...
    0x49: eor_immediate,
}

`emulator/cpu/addressing_modes.py::immediate 调用 CPU.fetch_byte 并返回操作数值,同时使 PC 前进。处理函数不需要再进行第二次总线读取。instructions.or_e` 写入 A 并更新 Z/N;Carry/Overflow、内存、X 和 Y 保持不变,操作码加操作数使 PC 前进两次。

常见误解:立即寻址模式提供的是一个值,而不是一个需要解引用的地址。不在本步骤范围内:所有内存寻址的 EOR 处理函数(第 136-142 课)以及 BIT(第 143-145 课)。

运行本课

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