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