Tutorial |
Dettaglio Istruzioni |
Istruzioni della Cpu 80x86 |
SCHEDA n° 07 [I/ 069 di 198] |
|
|
Questa istruzione esegue un salto condizionato dal risultato di una operazione aritmetico-logica tra numeri senza segno; per numeri con segno bisogna usare l'istruzione equivalente, JGE. |
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 ): |
JNB Destinazione | Salta alla locazione se non minore | |||||||||||||||
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 | ||
JNB |
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 JNB (salta se non minore) viene eseguita se [flag di Carry]=0; nessuna flag è invece influenzata da questa istruzione. | |
Il servizio di questa istruzione è identico a quello offerto dalla JAE (salta se è maggiore o uguale) e dalla JNC (salta se non c'è riporto). |
L'istruzione specifica (dopo la J di Jump) la condizione che impone il salto, in questo caso NB, legata all'evento Not Below, "salta se non è minore..."; 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): |
|
|
Scheda n° 07 | Istruzioni Cpu 80x86 | |||||||
Istruzione 069 - JNB |
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|