201. Instrucción txs

implementar la operación TXS.

Lección 201 de 356 · tests/chapter_01_cpu/test_201_instruction_txs.py

Por qué existe este paso

En este paso, añade `emulator/cpu/instructions.py::txs`. Esta operación se introduce ahora porque las transferencias de pila son el comportamiento restante de las instrucciones de pila: X se copia en el byte del puntero de pila sin acceder a memoria.

Implementación sugerida

def txs(cpu: CPU):
    cpu.s = cpu.x

Invariantes: X, P, PC, A, Y y la memoria no cambian; S sigue siendo el desplazamiento de byte bajo dentro de la página de pila $0100-$01FF ya establecida. Un error conceptual habitual es actualizar Zero y Negative como en otras transferencias de registros; TXS no cambia ningún flag, incluso cuando X es $00 o tiene el bit 7 activado.

Fuera de alcance: registrar el opcode implícito $9A en `emulator/cpu/opcodes.py::OPCODE_TABLE` corresponde al paso 202; TSX y su opcode corresponden a los pasos 203-204. No añadas aquí esas APIs posteriores.

Ejecutar esta lección

uv run pytest tests/chapter_01_cpu/test_201_instruction_txs.py -v