|
Tutorial
|
Dettaglio Istruzioni |
|
|
 |
Istruzioni
della Cpu 80x86 |
SCHEDA n° 07 [I/
084
di 198] |
 |
|
JPO - Salta se
c'è Parità Dispari |
|
 | Questa istruzione esegue
un salto condizionato dal risultato di una operazione di verifica
sui bit di parità. |
 |
I
microprocessori sono in grado di prendere decisioni,
eseguendo procedure (istruzioni) alternative sulla base del
risultato di una precedente operazione aritmetico-logica;
per un processore, dunque, decidere significa saltare ad un
percorso di programma alternativo... |
 |
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
): |
|
JPO Destinazione |
Salta
alla locazione se c'è parità dispari |
| |
|
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 |
JPO |
etichetta
|
16 |
7 |
7 |
3 |
no |
2 |
|
|
|
|
|
|
|
|
|
| 4 |
3 |
3 |
1 |
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 JPO
(salta se
c'è parità dispari) viene eseguita se [flag di
Parità]=0; nessuna flag è invece
influenzata da questa istruzione. |
 | Il servizio di questa istruzione è identico a
quello offerto dalla JNP (salta
se non c'è parità). |
 | L'istruzione specifica (dopo la J
di Jump) la condizione
che impone il salto, in questo caso PO,
legata all'evento Parity
Odd, "salta
se c'è parità dispari..."; 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 |
|
7B
03
90
EB 01
90
90 |
|
;---------
xxxx:
;---------
continua: |
JPO
xxxx
;---------------------------
;
servizio non c'è parità dispari
NOP
JMP SHORT continua
;---------------------------------
; servizio c'è
parità dispari
NOP
;---------------------------------
NOP |
|
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|