048. Sty página cero x
Añadir STY página cero,X ($94).
Lección 48 de 356 · tests/chapter_01_cpu/test_048_STY_zero_page_x.py
Archivo a actualizar
emulator/cpu/opcodes.pyUbicaciones
opcodes imports of zero_page_x and sty
opcodes.sty_zero_page_x
opcodes.OPCODE_TABLE[$94]Por qué existe este paso
Esta codificación combina el límite de instrucción orientado a dirección de STY con el helper existente de página cero,X, incluyendo el ajuste dentro de la página $00.
Ejemplo completo de implementación
# emulator/cpu/opcodes.py
from emulator.cpu.addressing_modes import zero_page_x
from emulator.cpu.instructions import sty
def sty_zero_page_x(cpu: CPU):
addr = zero_page_x(cpu)
sty(cpu, addr)
OPCODE_TABLE = {
# Preserve existing entries.
0x94: sty_zero_page_x,
}Invariantes importantes
- $94 se mapea a sty_zero_page_x y consume un byte de operando
- X indexa el operando y la dirección efectiva se ajusta a ocho bits
- la dirección efectiva, no su contenido actual, se pasa a sty
- Y y los flags del procesador no cambian con el almacenamiento
Error frecuente
$FF,X con X igual a $01 almacena en $0000, no en $0100; el indexado en página cero no debe escapar de la página $00.
Fuera de alcance
- STY absoluto
- modificar zero_page_x
- temporización de ciclos
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_048_STY_zero_page_x.py -v