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_addressObjetivo
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 & 0xFFFFPor 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