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_relative

La 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