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