079. Dec absoluto x
cablear DEC Absoluto,X (`0xDE`).
Lección 79 de 356 · tests/chapter_01_cpu/test_079_DEC_absolute_x.py
En este paso, añade emulator/cpu/opcodes.py:dec_absolute_x y OPCODE_TABLE[0xDE] después del trabajo de DEC de las lecciones 076-078.
Por qué existe este paso
Compón el resolutor de dirección absoluto-X ya establecido con la primitiva DEC en lugar de duplicar la indexación, el acceso al bus o la lógica de flags.
Implementación sugerida en emulator/cpu/opcodes.py:
def dec_absolute_x(cpu: CPU):
addr = absolute_x(cpu)
dec(cpu, addr)Añade exactamente esta entrada a la OPCODE_TABLE existente:
0xDE: dec_absolute_x,Invariantes: la dirección base de dos bytes es little-endian; X participa solo en la resolución de la dirección efectiva y no cambia; se permite el cruce de página; el PC avanza dos bytes de operando; DEC almacena un resultado de 8 bits y cambia solo Z/N.
Concepto erróneo: esta instrucción decrementa la memoria en base + X, no el registro X. El decremento de registro es la instrucción DEX posterior.
Fuera de alcance: las primitivas INX/DEX y sus opcodes implícitos son las lecciones 080-083; la contabilidad de ciclos no forma parte de este paso.
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_079_DEC_absolute_x.py -v