192. Rti implícito
registrar RTI implícito.
Lección 192 de 356 · tests/chapter_01_cpu/test_192_RTI_implied.py
Requisito previo: el paso 191 añadió `rti. En este paso, modifica únicamente emulator/cpu/opcodes.py importando ese símbolo y registrando el opcode $40 en OPCODE_TABLE`.
Por qué existe este paso
RTI es una instrucción implícita de un byte. `CPU.step()` ya ha leído $40, y todas las entradas restantes proceden de la pila, así que el despacho debe conectarse directamente con la operación sin consumir un operando.
Implementación sugerida
from emulator.cpu.instructions import rti
OPCODE_TABLE = {
# existing entries
0x40: rti,
}Invariantes: conserva todas las entradas de opcode existentes; asigna exactamente el entero $40 al mismo objeto de función `rti; no añadas lectura de operando ni envoltorio; deja que rti(cpu)` determine el PC a partir de la pila en lugar de la ejecución secuencial.
Concepto erróneo: implícito no significa que el byte siguiente a $40 sea un operando. Leerlo consumiría la siguiente instrucción antes de que RTI restaure el PC.
Fuera de alcance: el algoritmo de pila de RTI es el paso 191. PHA y el resto de instrucciones de pila empiezan en el paso 193. La entrada de NMI es un comportamiento posterior y no debe anticiparse aquí.
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_192_RTI_implied.py -v