178. Bvc relativo
conectar BVC con su opcode relativo.
Lección 178 de 356 · tests/chapter_01_cpu/test_178_BVC_relative.py
Requisito previo: el paso 177 conectó BMI. En este paso, añade lo siguiente a `emulator/cpu/opcodes.py`:
from emulator.cpu.instructions import bvc
def bvc_relative(cpu: CPU):
offset = relative(cpu)
bvc(cpu, offset)
OPCODE_TABLE[0x50] = bvc_relativeLa importación y la entrada deben unirse a la importación y al literal de tabla ya agrupados.
Por qué existe este paso
El gestor decodifica un operando con signo, y luego el `instructions.bvc` del paso 170 toma la decisión de salto con Overflow desactivado.
Invariantes: el opcode `0x50` siempre consume su operando; con Overflow desactivado se aplica el desplazamiento desde el PC posterior al operando, y con Overflow activado PC se queda ahí. No se modifica ninguna flag ni memoria. Idea errónea habitual: BVC no desactiva Overflow ni deriva el desbordamiento del desplazamiento de salto; solo observa la flag actual.
Fuera de alcance: la conexión de opcode de BVS es el paso 179. El direccionamiento JMP indirecto continúa como paso 180.
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_178_BVC_relative.py -v