Ciao, da quel che ho capito vuoi scambiare il contenuto della variabile
A con il contenuto della variabile
B? Cioè vuoi efettuare la seguente operazione:
A <- B
Nel caso in cui sia giusto ciò che ho scritto puoi procedere in questo modo, il sorgente che riporterò in basso sarà scritto in Assembly INTEL x8086:
.DOSSEG
.MODEL TINY
.CODE
ORG 0100H
BEGIN: A DB 08H
B DB 03H
JMP MAIN
MAIN: MOV AX, A
MOV BX, B
MOV AX, BX
MOV AH, 4CH
INT 21H
NOP
END BEGIN
Mi sono servito di due registri dove ho appoggiato i miei dati (Accumulatore e base). Perchè devo fare questo? Perchè l'istruzione
MOV non mi permette di usare come destinazione un dato immediato. Posso chiarirti le idee su questa istruzione con questo schema:
MOV <destinazione>,<sorgente>
- - Destinazione può essere un registro (16 o 8 bit);
- Destinazione può essere una locazione di memoria;
- Destinazione NON può essere un dato immediato;
Sorgente
può essere:
- - Dato immediato;
- Registro (8 o 16 bit);
- Locazione di memoria;
In effetti, se ci pensi, è ovvia come cosa. La
destinazione la possiamo vedere come una 'cartella', mentre la
sorgente come un 'quaderno': Sarebbe impossibile mettere una cartella dentro un quaderno, ti pare?
Saluti, spero di esserti stato utile.