047. Sty página cero
Añadir STY página cero ($84).
Lección 47 de 356 · tests/chapter_01_cpu/test_047_STY_zero_page.py
Archivo a actualizar
emulator/cpu/opcodes.pyUbicaciones
opcodes imports of zero_page and sty
opcodes.sty_zero_page
opcodes.OPCODE_TABLE[$84]Por qué existe este paso
La instrucción principal sty ya realiza la escritura. Esta lección conecta su primera codificación resolviendo un destino de página cero de un byte y pasando esa dirección a sty.
Ejemplo completo de implementación
# emulator/cpu/opcodes.py
from emulator.cpu.addressing_modes import zero_page
from emulator.cpu.instructions import sty
def sty_zero_page(cpu: CPU):
addr = zero_page(cpu)
sty(cpu, addr)
OPCODE_TABLE = {
# Preserve existing entries.
0x84: sty_zero_page,
}Invariantes importantes
- $84 se mapea a sty_zero_page y consume un byte de operando
- el operando se resuelve a $00nn y se pasa como dirección
styescribe Y a través del bus- STY deja Zero y Negative sin cambios
Error frecuente
No se debe leer la dirección resuelta antes de llamar a sty; las instrucciones de almacenamiento pasan una dirección de destino a la instrucción principal, no un valor.
Fuera de alcance
- codificaciones de STY en página cero,X y absoluto
- nuevos modos de direccionamiento
- temporización de ciclos
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_047_STY_zero_page.py -v