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