MOV (istruzione)

Da Wikipedia, l'enciclopedia libera.

MOV è il codice mnemonico di un'istruzione del set della serie di processori x86.

Lo scopo dell'istruzione è copiare dati. Il linguaggio Assembly dell'x86 ha diversi Opcode per descrivere un'operazione MOV, a seconda se il processore si trova in Real mode o in Protected mode, se il trasferimento è di un byte, di una word o di una dword, e se il trasferimento avviene tra due registri, tra un registro e una locazione di memoria, o tra due locazioni di memoria.

Sintassi[modifica | modifica wikitesto]

La sintassi dell'istruzione secondo Intel è:

MOV dest, source

Mentre secondo AT&T:

MOV source, dest

dest può rappresentare un registro o una locazione di memoria, mentre source oltre alle due precedenti può anche essere un numero. Da notare che, al termine dell'istruzione, il valore di source resta invariato, mentre quello di dest eguaglia source.

Dettagli[modifica | modifica wikitesto]

Non si possono effettuare spostamenti tra registri di diversa dimensione, ad esempio questa istruzione è invalida:

MOV EBX, AL

Poiché EBX è un registro a 32-bit mentre AL a 8-bit. A tal scopo vedere l'istruzione MOVZX. Inoltre non si può effettuare questa operazione tra due registri di segmento o registri speciali (TR0 - TR7, CR0 - CR4, DR0 - DR7):

MOV DS, ES

ma si dovrà passare per un registro General Purpose:

MOV AX, ES
MOV ES, AX

È anche proibito copiare direttamente un numero in uno di quei registri.

Flags[modifica | modifica wikitesto]

Questa operazione non influenza nessuna Flag.

Particolarità[modifica | modifica wikitesto]

Prima dell'esecuzione dell'aggiorna il registro di segmento SS, gli Interrupt vengono disabilitati sul processore (su alcuni processori, tutti i registri di segmento), per poi essere riabilitati al termine. Questo poiché gli interrupt si servono spesso dello stack, che in quel momento subisce uno spostamento.

informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica