036. Instrucción stx

Añadir la instrucción STX principal.

Lección 36 de 356 · tests/chapter_01_cpu/test_036_instruction_stx.py

Archivo a actualizar

emulator/cpu/instructions.py

Ubicación

instructions.stx, beside ldx

Por qué existe este paso

STX introduce la contrapartida de guardado de LDX. Sigue el límite establecido por STA: la instrucción principal recibe una dirección de destino ya resuelta y escribe el registro a través del bus de la CPU sin modificar los flags.

Implementación de ejemplo completa

# emulator/cpu/instructions.py
def stx(cpu: CPU, address: int):
    value = cpu.x
    cpu.bus.write(address, value)

Invariantes importantes

  • stx recibe una dirección, no un valor
  • el valor escrito es X y la escritura se realiza a través de cpu.bus.write
  • X y los flags del procesador permanecen sin cambios

Concepto erróneo habitual

No actualices Zero ni Negative a partir de X. Las instrucciones de guardado solo escriben en memoria, incluso cuando el byte guardado es $00 o tiene el bit 7 activado.

Fuera de alcance

  • todos los manejadores de opcode de STX y sus entradas en la tabla de opcodes
  • cambios en los helpers de modo de direccionamiento
  • la temporización de ciclos y los efectos de hardware en la escritura

Ejecutar esta lección

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