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