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.pyUbicación
instructions.sty, beside ldyPor 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