181. Instrucción jmp

añadir el comportamiento de JMP independiente del modo de direccionamiento.

Lección 181 de 356 · tests/chapter_01_cpu/test_181_instruction_jmp.py

En este paso, añade `emulator/cpu/instructions.py::jmp`:

Instrucción

JMP -> PC = target_address

Objetivo

implementar jmp(cpu, addr) en instructions.py.

Guía para el estudiante

JMP cambia directamente el contador de programa. No lee memoria por sí misma, y no modifica ninguna flag.

Importante

PC es un registro de 16 bits, así que mantén la dirección asignada dentro de 0x0000..0xFFFF:

cpu.pc = addr & 0xFFFF

Por qué existe este paso

Los modos de direccionamiento resuelven el destino; la instrucción primitiva solo instala esa dirección en PC. Invariantes: PC se enmascara a 16 bits, mientras que el estado, los registros, la pila y la memoria no cambian. Concepto erróneo: `addr` no es una posición de memoria cuyo byte deba cargarse.

Fuera de alcance: importar `jmp en emulator/cpu/opcodes.py` y conectar los manejadores absoluto/indirecto y sus entradas en la tabla son los pasos 182-183. JSR comienza en el paso 184.

Ejecutar esta lección

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