074. Inc absoluto

cablear INC Absoluto (`0xEE`).

Lección 74 de 356 · tests/chapter_01_cpu/test_074_INC_absolute.py

En este paso, con inc ya importado, añade únicamente emulator/cpu/opcodes.py:inc_absolute y OPCODE_TABLE[0xEE].

Por qué existe este paso

addressing_modes.absolute centraliza la decodificación little-endian de la dirección de dos bytes, mientras que la primitiva INC existente realiza la lectura-modificación-escritura.

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

def inc_absolute(cpu: CPU):
    addr = absolute(cpu)
    inc(cpu, addr)

Añade exactamente esta entrada a la OPCODE_TABLE existente:

0xEE: inc_absolute,

Invariantes: el byte bajo del operando precede al byte alto; absolute(cpu) consume ambos y avanza el PC dos veces; EE 00 02 apunta a $0200; la longitud total de la instrucción es de tres bytes; INC actualiza la memoria y Z/N, no los registros, Carry ni Overflow.

Concepto erróneo: no inviertas los bytes del operando ni pases el valor del byte obtenido a inc; el auxiliar devuelve la dirección efectiva de 16 bits.

Fuera de alcance: inc_absolute_x y OPCODE_TABLE[0xFE] son la lección 075.

Ejecutar esta lección

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