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_relativeIntegra 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