038. Stx página cero y
Añadir STX página cero,Y ($96).
Lección 38 de 356 · tests/chapter_01_cpu/test_038_STX_zero_page_y.py
Archivo a actualizar
emulator/cpu/opcodes.pyUbicaciones
opcodes.stx_zero_page_y
opcodes.OPCODE_TABLE[$96]Por qué existe este paso
Esta lección reutiliza el helper de página cero,Y introducido por primera vez en el test 029 para añadir la codificación indexada en página cero de STX. El cálculo de dirección se mantiene separado de la operación de guardado principal.
Implementación de ejemplo completa
# emulator/cpu/opcodes.py
def stx_zero_page_y(cpu: CPU):
addr = zero_page_y(cpu)
stx(cpu, addr)
OPCODE_TABLE = {
# Preserve existing entries.
0x96: stx_zero_page_y,
}Invariantes importantes
- $96 se corresponde con stx_zero_page_y
- Y, no X, indexa el operando de un byte
- la base más Y envuelve dentro de la página $00
- stx escribe X y deja Zero y Negative sin cambios
Concepto erróneo habitual
El registro que se guarda no determina el registro de índice. STX $nn,Y guarda X pero usa Y para calcular el destino.
Fuera de alcance
- STX absoluto
- cambios en zero_page_y o stx
- la temporización de ciclos
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_038_STX_zero_page_y.py -v