Tutorial Sezione Assembler

Dettaglio Istruzioni 

Le Schede del Tutorial

  Istruzioni della Cpu 80x86

SCHEDA n° 07 [I/ 067 di 198] 

    

    JNA - Salta se non è Maggiore
     
bulletQuesta 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, JLE.
         
Suggerimento 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... 
     
Attenzione ! 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)"
         
bulletIn 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).
bulletLe sue caratteristiche sono riassunte nella seguente tabella (leggi le istruzioni Legenda della Tabella):
         
         JNA Destinazione  Salta alla locazione se non maggiore
 

Esempio di Applicazione

Cicli di Clock Mem
Acces

Bytes
Flag   influenzate
Mnemonico Operandi 86 268 386 486 O D I T S Z A P C

JNA

etichetta

16 7 7 3 no 2                   
4 3 3 1 no
         
bulletLa 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.
bulletSi evidenzia anche che JNA (salta se non maggiore) viene eseguita se [flag di Carry]=1 e [flag di Zero]=1; nessuna flag è invece influenzata da questa istruzione.
bulletIl servizio di questa istruzione è identico a quello offerto dalla JBE (salta se è minore o uguale).
          
bulletL'istruzione specifica (dopo la J di Jump) la condizione che impone il salto, in questo caso NA, legata all'evento Not Above, "salta se non è maggiore..."; subito dopo indica l'etichetta della locazione a cui saltare.
bulletNaturalmente 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
76 03
 

90
EB 01


90

90
 




;---------
xxxx:

;---------
continua:
      JNA  xxxx
;---------------------------
; servizio maggiore            
      NOP                      

      JMP  SHORT continua     
;------------------------------

; servizio minore o uguale     
      NOP                      
;------------------------------
      NOP  

    

Pagina Precedente Scheda n° 07 Pagina Successiva Istruzioni Cpu 80x86 Torna al Menu delle Schede del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
Istruzione 067 - JNA

    

SCHEDE » 1.Header EXE 2.PseudoOp MASM 3.Differenza tra Macro e Procedure
4.
Tabella Vettori 5.PSP 6.Stack 7.Istruzioni 80x86
8.La misura dell'Informazione 9.Numeri e Logica Binaria
TUTORIAL » Indirizzi Base | Registri Interni | Area Comunicaz. BIOS | Funzioni BIOS | Funzioni DOS
Prefazione | CAP 1 | CAP 2 | Schede | Palestra
Libreria ASM | Libreria MAC | Progetti ASM | Download | Info | Indice
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati