|
Tutorial
|
Dettaglio Istruzioni |
|
|
 |
Istruzioni
della Cpu 80x86 |
SCHEDA n° 07 [I/
030
di 198] |
 |
|
CMPXCHG - Confronta
un operando con l'accumulatore e scambia |
|
 | Questa istruzione non
appartiene al Set dell'8088/86; si usa solo con 80486. |
 | Il suo compito è quello di confrontare il
contenuto dell'accumulatore con l'operando destinazione; naturalmente la
dimensione dell'operando determina anche la parte dell'accumulatore
coinvolta nel confronto, AL, AX o
EAX. |
 | Se i valori sono uguali l'operando sorgente
viene copiato in quello destinazione; altrimenti l'operando destinazione è
copiato nell'accumulatore. |
 | Le sue caratteristiche sono riassunte nella
seguente tabella (leggi le istruzioni
): |
| CMPXCHG
Destinazione, Sorgente |
Destinazione=Sorgente
se Destinazione = Accumulatore
Accumulatore=Destinazione se Destinazione
<> Accumulatore |
| |
|
Esempio
di Applicazione |
Cicli
di Clock |
Mem
Acces |
N°
Bytes |
Flag
influenzate |
| Mnemonico |
Operandi |
86 |
268 |
386 |
486 |
O |
D |
I |
T |
S |
Z |
A |
P |
C |
CMPXCHG
|
CS:[Depo01],CL
|
no |
no |
no |
7-10 |
no |
2 |
# |
|
|
|
# |
# |
# |
# |
# |
CMPXCHG
|
DS:[Depo02],BX
|
no |
no |
no |
7-10 |
no |
2 |
# |
|
|
|
# |
# |
# |
# |
# |
CMPXCHG
|
DX,BX
|
no |
no |
no |
6 |
no |
2 |
# |
|
|
|
# |
# |
# |
# |
# |
 | La tabella evidenzia le
tipologie degli operandi di questa istruzione:
 | tra memoria e registro o tra registro e
registro. |
|
 | Se il confronto tra memoria e registro da esito negativo
è necessario aggiungere 3 cicli di clock. |
 | La figura seguente mostra le risorse
richieste da questa istruzione in funzione degli operandi
e del tipo di indirizzamento coinvolti (leggi le
istruzioni);
da notare che, per evitare errori di compilazione, è necessario
specificare, all'inizio del sorgente, la pseudoOperazione
.486: |
|
Addr |
|
Codifica
Masm |
|
Sequenza
Bytes |
|
Istruzione |
|
|
|
|
|
|
|
|
.486 |
0100
0101 |
|
55
55AA |
|
55
AA 55 |
|
Depo01
Depo02 |
DB 55H
DW 55AAH |
| ---- |
|
---------------- |
|
----------------- |
|
------- |
---------------------- |
0103
0109
010F
0112
0115 |
|
2E 0F A6 0E 0100
3E 0F A7 1E 0101
0F A7 DA
0F A7 C8
0F A6 C8 |
|
2E 0F A6 0E 00 01
3E 0F A7 1E 01
01
0F A7 DA
0F A7 C8
0F A6 C8 |
|
|
CMPXCHG CS:[Depo01],CL
CMPXCHG DS:[Depo02],BX
CMPXCHG DX,BX
CMPXCHG AX,CX
CMPXCHG AL,CL |
|
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|