|
Tutorial
|
Dettaglio Istruzioni |
|
|
 |
Istruzioni
della Cpu 80x86 |
SCHEDA n° 07 [I/
150
di 198] |
 |
|
PUSHW - Mette
nello stack un dato a 16 bit |
|
 | Questa istruzione non
appartiene al Set dell'8088/86; si usa solo con 80386/486. |
 | Si tratta di una PUSH
tipizzata per trasferire
nello stack
di un dato a 16 bit, e per i dettagli
funzionali valgono le descrizioni proposte per PUSH. |
 | Le sue caratteristiche sono riassunte nella
seguente tabella (leggi le istruzioni
): |
|
PUSHW Sorgente |
[SS:SP]
stack << Sorgente
SP << SP - 2 |
| |
|
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 |
PUSHW
|
1234H
|
no |
3 |
2 |
1 |
no |
2,3 |
|
|
|
|
|
|
|
|
|
PUSHW
|
DS
|
10 |
3 |
2 |
3 |
1 |
1 |
PUSHW
|
AX
|
11 |
3 |
2 |
1 |
1 |
1 |
| PUSHW |
EAX |
no |
no |
 | La tabella evidenzia che
l'istruzione non altera alcuna flag. |
 | L'operando può essere un numero immediato
o un registro (a 16 o
32 bit), anche di segmento, ma non il contenuto di locazioni di memoria. |
 | Quando il processore esegue un'istruzione PUSHW
XX provvede ai seguenti compiti:
 | decrementa
il valore corrente di SP e lo
utilizza per puntare la
locazione in cui scrivere la parte alta
del dato a 16 bit contenuto in XX. |
 | decrementa
ancora il valore di SP e lo
utilizza per puntare la
locazione in cui scrivere la parte bassa
del dato a 16 bit contenuto in XX. |
|
 | Se non si provvede altrimenti lo stack rimane
sporco, cioè con 2 bytes in più
rispetto alla condizione precedente l'esecuzione dell'istruzione: la cosa è
fastidiosa ma non ancora critica... ma se l'operazione fosse ripetuta
sciaguratamente troppe volte si rischia, scrivendo all'indietro, di
sovrascrivere il programma mentre è in esecuzione... |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|