036. Instrucción stx
Añadir la instrucción STX principal.
Lección 36 de 356 · tests/chapter_01_cpu/test_036_instruction_stx.py
Archivo a actualizar
emulator/cpu/instructions.pyUbicación
instructions.stx, beside ldxPor qué existe este paso
STX introduce la contrapartida de guardado de LDX. Sigue el límite establecido por STA: la instrucción principal recibe una dirección de destino ya resuelta y escribe el registro a través del bus de la CPU sin modificar los flags.
Implementación de ejemplo completa
# emulator/cpu/instructions.py
def stx(cpu: CPU, address: int):
value = cpu.x
cpu.bus.write(address, value)Invariantes importantes
- stx recibe una dirección, no un valor
- el valor escrito es X y la escritura se realiza a través de cpu.bus.write
- X y los flags del procesador permanecen sin cambios
Concepto erróneo habitual
No actualices Zero ni Negative a partir de X. Las instrucciones de guardado solo escriben en memoria, incluso cuando el byte guardado es $00 o tiene el bit 7 activado.
Fuera de alcance
- todos los manejadores de opcode de STX y sus entradas en la tabla de opcodes
- cambios en los helpers de modo de direccionamiento
- la temporización de ciclos y los efectos de hardware en la escritura
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_036_instruction_stx.py -v