077. Dec página cero x
cablear DEC Página Cero,X (`0xD6`).
Lección 77 de 356 · tests/chapter_01_cpu/test_077_DEC_zero_page_x.py
En este paso, con dec importado en la lección 076, añade solo emulator/cpu/opcodes.py:dec_zero_page_x y OPCODE_TABLE[0xD6].
Por qué existe este paso
Delega el cálculo de dirección de página cero indexada en el auxiliar de direccionamiento existente y la mutación de memoria en la primitiva DEC existente.
Implementación sugerida en emulator/cpu/opcodes.py:
def dec_zero_page_x(cpu: CPU):
addr = zero_page_x(cpu)
dec(cpu, addr)Añade exactamente esta entrada a la OPCODE_TABLE existente:
0xD6: dec_zero_page_x,Invariantes: se consume un byte de operando; base más X envuelve en $FF dentro de la página cero; el PC avanza hasta la siguiente instrucción de dos bytes; DEC escribe un resultado de 8 bits y actualiza solo Z/N.
Concepto erróneo: $FF,X con X=1 no apunta a $0100; el direccionamiento indexado de página cero resuelve $0000 antes de que se ejecute DEC.
Fuera de alcance: dec_absolute/0xCE y dec_absolute_x/0xDE son las lecciones 078-079.
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_077_DEC_zero_page_x.py -v