|
Tutorial
|
Dettaglio Istruzioni |
|
|
 |
Istruzioni
della Cpu 80x86 |
SCHEDA n° 07 [I/
061
di 198] |
 |
|
JECXZ - Salta se
il registro ECX è nullo |
|
 | Questa istruzione non
appartiene al Set dell'8088/86; si usa solo con 80286/486;
esegue
un salto condizionato dal valore del registro ECX. |
 |
Fai
attenzione: i salti condizionati
sono sempre di tipo corto (Short), cioè
rispetto alla posizione in cui vengono richiesti, possono puntare le
istruzioni poste 127 locazioni in avanti
o 128 indietro. Un errore
frequente, nelle prime esperienze di programmazione è proprio
quello di inserire troppe
istruzioni tra il punto di partenza e il punto di arrivo del
salto: in queste occasioni l'assemblatore segnala l'errore "error A2053: Jump out of range by
nnn byte(s)" |
 | In realtà i processori dal 80386.consentono
salti condizionati di tipo near (vicino),
cioè nel range 32767 in avanti e 32768
indietro; se viene specificata la pseudoOperazione
.386, l'assemblatore non
segnala errore e codifica l'istruzione nel modo più corto
possibile (anche short se è possibile). |
 | Le sue caratteristiche sono riassunte nella
seguente tabella (leggi le istruzioni
): |
|
JECXZ Destinazione |
Salta
alla locazione se il registro ECX contiene zero |
| |
|
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 |
JECXZ |
etichetta
|
no |
8 |
9 |
8 |
no |
2 |
|
|
|
|
|
|
|
|
|
| no |
4 |
5 |
5 |
no |
 | La tabella mette in evidenza che in presenza
di salto (prima riga) è necessario un numero maggiore di cicli di Clock,
anche perchè il processore è costretto a reinizializzare
la coda dell'istruzione al fine di assumere i codici
operativi dell'istruzione a cui cedere il controllo (evidentemente non
consecutiva a quella che richiede il salto..); se il salto non
viene eseguito i tempi d'esecuzione (seconda riga) sono più rapidi. |
 | Si evidenzia anche che JECXZ
(salta se il registro ECX contiene 0) viene eseguita se
il registro ECX=0; nessuna flag è invece influenzata da questa istruzione. |
 | L'istruzione specifica (dopo la J
di Jump) la condizione
che impone il salto, in questo caso ECXZ,
llegata all'evento registro ECX a Zero, "salta
se il registro ECX si è azzerato..."; subito dopo indica l'etichetta della
locazione a cui saltare. |
 | Naturalmente questa etichetta deve essere
presente nelle prossimità dell'istruzione che l'ha dichiarata, seguita da
":" (2 punti), per esempio (leggi le
istruzioni):
|
|
Addr |
|
Codifica
Masm |
|
Istruzione |
|
0100
0102
0103
0105
0106 |
|
67
E3 03
90
EB 01
90
90 |
|
;---------
xxxx:
;---------
continua: |
JECXZ
xxxx
;---------------------------
;
servizio registro ECX <> 0
NOP
JMP SHORT continua
;------------------------------
; servizio registro
ECX a zero
NOP
;------------------------------
NOP |
|
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|