198. Php implícito

registrar PHP implícito.

Lección 198 de 356 · tests/chapter_01_cpu/test_198_PHP_implied.py

Requisito previo: el paso 197 añadió `php. En este paso, modifica únicamente emulator/cpu/opcodes.py importando php y registrándolo en OPCODE_TABLE`.

Por qué existe este paso

PHP obtiene P y S directamente del estado de la CPU. El opcode $08, por tanto, no tiene operando y despacha directamente a `php(cpu)`.

Implementación sugerida

from emulator.cpu.instructions import php

OPCODE_TABLE = {
    # existing entries
    0x08: php,
}

Invariantes: conserva las asignaciones existentes; asigna exactamente $08 al objeto de función `php`; no uses envoltorio de direccionamiento ni lectura de operando; consume un byte de opcode y conserva la semántica de pila/estado del paso 197.

Concepto erróneo: el byte tras $08 no es un dato de estado; PHP apila el P real.

Fuera de alcance: el comportamiento de PHP corresponde al paso 197, y PLP empieza en el paso 199. Los cambios al byte apilado por PHP no corresponden a este paso de registro de opcode.

Ejecutar esta lección

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