Tutorial Sezione Assembler

Dettaglio Istruzioni 

Le Schede del Tutorial

  Istruzioni della Cpu 80x86

SCHEDA n° 07 [I/ 117 di 198] 

    

    LOOPZD - Salta ECX volte se è zero
     
bulletQuesta istruzione non appartiene al Set dell'8088/86; si usa solo con 80386/486.
bulletIl suo compito è quello di eseguire un numero ECX di salti ad una specifica locazione, purché l'operazione aritmetico-logica tra numeri senza segno dia risultato nullo; il salto viene dunque eseguito se il registro CX è diverso da 0 e se la flag di Zero è lasciata a 1 prima dell'eventuale salto; il registro contatore deve essere predisposto con un numero compreso tra 0 e 4294967295 (=232).
bulletIn pratica prima decrementa il valore di ECX e, in funzione del risultato:
bulletse ECX=00000000 o se una precedente operazione aritmetico-logica ha prodotto risultato non nullo (anche se CX non è ancora a 0000) prosegue con l'istruzione successiva.
bulletse ECX è diverso da 00000000  e se una precedente operazione aritmetico-logica ha lasciato [flag di Zero]=1, salta all'indirizzo suggerito dall'etichetta che lo rappresenta, di solito presente nelle prossimità dell'istruzione stessa (che l'ha dichiarata) seguita da ":" (2 punti).
bulletin entrambi i casi modifica il puntatore di codice CS:IP, obbligando il processore ad eseguire istruzioni in tutt'altra parte del programma.
         
bulletI salti possibili sono di tipo near (vicino), cioè nel range 32767 in avanti e 32768 indietro (è necessario specificare la pseudoOperazione .386).
bulletLe sue caratteristiche sono riassunte nella seguente tabella (leggi le istruzioni Legenda della Tabella):
         
         LOOPZD Destinazione  Salta se ECX non contiene zero e ffZ=1
 

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

LOOPZD

etichetta

no no 11 7 no 2                   
no no 5 6 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 tratta di una versione tipizzata di LOOPZ, alla quale si rimanda.

    

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 117 - LOOPZD

    

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