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