078. Dec absoluto

cablear DEC Absoluto (`0xCE`).

Lección 78 de 356 · tests/chapter_01_cpu/test_078_DEC_absolute.py

En este paso, tras la primitiva DEC y las formas de página cero de las lecciones 076-077, añade emulator/cpu/opcodes.py:dec_absolute y OPCODE_TABLE[0xCE].

Por qué existe este paso

Deja que addressing_modes.absolute decodifique la dirección efectiva little-endian y luego reutiliza instructions.dec para la mutación y los flags.

Implementación sugerida en emulator/cpu/opcodes.py:

def dec_absolute(cpu: CPU):
    addr = absolute(cpu)
    dec(cpu, addr)

Añade exactamente esta entrada a la OPCODE_TABLE existente:

0xCE: dec_absolute,

Invariantes: se consumen dos bytes de operando, primero el byte bajo; CE 00 02 resuelve a $0200; el PC avanza hasta la siguiente instrucción de tres bytes; DEC envuelve el byte de memoria a ocho bits y actualiza solo Zero y Negative.

Concepto erróneo: $00 $02 no es la dirección $0002; los operandos absolutos del 6502 son little-endian y por tanto identifican $0200.

Fuera de alcance: DEC absoluto-X (dec_absolute_x, opcode 0xDE) pertenece a la lección 079.

Ejecutar esta lección

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