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.py

Ubicaciones

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
  • sty escribe 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