|
Tutorial
|
Dettaglio Istruzioni |
|
|
 |
Istruzioni
della Cpu 80x86 |
SCHEDA n° 07 [I/
059
di 198] |
 |
|
JCXZ - Salta se
il registro CX è nullo |
|
 | Questa istruzione esegue
un salto condizionato dal valore del registro CX. |
 |
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
): |
|
JCXZ Destinazione |
Salta
alla locazione se il registro CX 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 |
JCXZ |
etichetta
|
18 |
8 |
9 |
8 |
no |
2 |
|
|
|
|
|
|
|
|
|
| 6 |
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 JCXZ
(salta se il registro CX contiene 0) viene eseguita se
il registro CX=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 CXZ,
legata all'evento registro CX a Zero, "salta
se il registro CX 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 |
|
E3
03
90
EB 01
90
90 |
|
;---------
xxxx:
;---------
continua: |
JCXZ
xxxx
;---------------------------
;
servizio registro CX non zero
NOP
JMP SHORT continua
;------------------------------
; servizio registro
CX azzerato
NOP
;------------------------------
NOP |
|
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|