176. Bpl relativo

conectar BPL con su opcode relativo.

Lección 176 de 356 · tests/chapter_01_cpu/test_176_BPL_relative.py

Requisito previo: el paso 175 conectó BNE. En este paso, añade lo siguiente a `emulator/cpu/opcodes.py`:

from emulator.cpu.instructions import bpl

def bpl_relative(cpu: CPU):
    offset = relative(cpu)
    bpl(cpu, offset)

OPCODE_TABLE[0x10] = bpl_relative

Integra la importación y la entrada en el literal de importaciones y de tabla ya existentes.

Por qué existe este paso

`relative consume el operando y el instructions.bpl` del paso 168 interpreta "plus" como Negative desactivado antes de cambiar PC.

Invariantes: `0x10` se asigna al gestor de un argumento; ambos resultados consumen el operando con signo; con Negative desactivado se salta desde el PC posterior al operando, y con Negative activado no. Las flags y la memoria permanecen sin cambios. Idea errónea habitual: BPL no comprueba si el desplazamiento o PC son positivos; solo comprueba la flag Negative.

Fuera de alcance: la conexión de opcodes de BMI/BVC/BVS se introduce en los pasos 177-179, y el direccionamiento JMP indirecto es el paso 180.

Ejecutar esta lección

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