041. Instrucción sty

Añadir la instrucción principal STY.

Lección 41 de 356 · tests/chapter_01_cpu/test_041_instruction_sty.py

Archivo a actualizar

emulator/cpu/instructions.py

Ubicación

instructions.sty, beside ldy

Por qué existe este paso

STY completa el par de instrucciones del registro Y. Al igual que STA y STX, recibe una dirección de destino ya resuelta y escribe el registro a través del bus de la CPU.

Ejemplo completo de implementación

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

Invariantes importantes

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

Error frecuente

No se debe llamar a cpu._update_zero_and_negative_flags; las instrucciones de almacenamiento no derivan flags del byte que escriben, incluso cuando Y es $00 o tiene el bit 7 activado.

Fuera de alcance

  • todos los handlers de opcode de STY y las entradas en la tabla de opcodes
  • añadir o modificar helpers de modos de direccionamiento
  • temporización de ciclos y efectos hardware en el lado de escritura

Ejecutar esta lección

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