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