174. Beq relativo
conectar BEQ con su opcode relativo.
Lección 174 de 356 · tests/chapter_01_cpu/test_174_BEQ_relative.py
Requisito previo: el paso 173 conectó BCS. En este paso, añade lo siguiente a `emulator/cpu/opcodes.py`:
from emulator.cpu.instructions import beq
def beq_relative(cpu: CPU):
offset = relative(cpu)
beq(cpu, offset)
OPCODE_TABLE[0xF0] = beq_relativeLa importación y la asignación pueden fusionarse en las estructuras agrupadas ya existentes.
Por qué existe este paso
`relative proporciona el desplazamiento con signo posterior al operando, y el instructions.beq` del paso 166 salta cuando la flag Zero ya establecida está activada.
Invariantes: `0xF0 se despacha a un gestor de un argumento y consume su operando esté o no activada Zero; +5 desde 0x8002 llega a 0x8007`. No cambia ninguna flag ni memoria. Idea errónea habitual: BEQ no compara valores por sí mismo; solo observa Zero tal como la dejó una operación anterior.
Fuera de alcance: la conexión de opcodes de BNE/BPL/BMI/BVC/BVS corresponde a los pasos 175-179; el direccionamiento JMP indirecto corresponde al paso 180.
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_174_BEQ_relative.py -v