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