Esempio 07: scambiare variabili con XCHG

L’istruzione XCHG è molto utili per scambiare dati tra variabili. L’unica accortezza è che deve sempre passare da registri per effettuare l’operazione. Abbiamo visto il modo più semplice per farlo con tre registri in questo articolo.

Un esercizio che spesso è svolto in C/C++ per prendere dimistichezza all’alunno con l’uso delle variabili. In effetti, i n C/C++, per scambiare due variabili ne occorrono tre, ovvero una di appoggio. In assembly, grazie all’approccio direttamente elettronico/fisico sui registri, lo scambio avviene direttamente con un semplice comando.

; esempio 07
; date due parole di 16 bit, scambiarne il valore
; Uso dell’istruzione xchg
; assembly non scambia tra variabili dichiarate in .data, ma si deve sempre passare per un registro

.STACK

.DATA
    opr1 db 15
    opr2 db 7     

.CODE
.STARTUP

mov     al, opr1
xchg    al, opr2
mov     opr1, al

.EXIT
END

Ultima modifica 9 Gennaio 2024