049. Sty absoluto
Añadir STY absoluto ($8C).
Lección 49 de 356 · tests/chapter_01_cpu/test_049_STY_absolute.py
Archivo a actualizar
emulator/cpu/opcodes.pyUbicaciones
opcodes imports of absolute and sty
opcodes.sty_absolute
opcodes.OPCODE_TABLE[$8C]Por qué existe este paso
STY absoluto completa la familia soportada de STY decodificando un destino de 16 bits y pasando esa dirección a la instrucción de almacenamiento existente.
Ejemplo completo de implementación
# emulator/cpu/opcodes.py
from emulator.cpu.addressing_modes import absolute
from emulator.cpu.instructions import sty
def sty_absolute(cpu: CPU):
addr = absolute(cpu)
sty(cpu, addr)
OPCODE_TABLE = {
# Preserve existing entries.
0x8C: sty_absolute,
}Invariantes importantes
- $8C se mapea a sty_absolute y consume dos bytes de operando
- el operando little-endian se resuelve como una dirección de destino de 16 bits
- sty escribe Y en esa dirección a través del bus
- la ejecución avanza tres bytes en total y los flags permanecen sin cambios
Error frecuente
No se debe pasar un valor leído de la dirección absoluta a sty; la instrucción principal de almacenamiento requiere la dirección de destino en sí.
Fuera de alcance
- instrucciones de transferencia y sus opcodes
- modos de direccionamiento adicionales de STY
- temporización de ciclos y efectos hardware en el lado de escritura
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_049_STY_absolute.py -v