026. Sta absoluto y
Añadir STA absoluto,Y ($99).
Lección 26 de 356 · tests/chapter_01_cpu/test_026_STA_absolute_y.py
Archivo a actualizar
emulator/cpu/opcodes.pyUbicaciones
opcodes.sta_absolute_y
opcodes.OPCODE_TABLE[$99]Por qué existe este paso
Esta es la contraparte indexada con Y del Test 025. Reutiliza absolute_y para que el manejador solo coordine la resolución del destino y la escritura existente de sta.
Implementación de ejemplo completa
# emulator/cpu/opcodes.py
def sta_absolute_y(cpu) -> None:
address = absolute_y(cpu)
sta(cpu, address)
OPCODE_TABLE = {
# Preserve existing entries.
0x99: sta_absolute_y,
}Invariantes importantes
- dos bytes de operando forman la base antes de sumar Y
- Y, no X, selecciona el destino final
- la dirección indexada completa se pasa a sta
- STA no actualiza flags
Concepto erróneo habitual
Copiar el manejador de absoluto,X sin cambiar el ayudante de direccionamiento usa de forma silenciosa el registro de índice incorrecto cuando X e Y difieren.
Fuera de alcance
- opcodes de STA indirecto
- el comportamiento de ciclos por cruce de página
- cambios en absolute_y o sta
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_026_STA_absolute_y.py -v