Calcolatori elettronici/Istruzioni per il controllo del flusso: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nuova pagina: {{Calcolatori elettronici}} ==Istruzioni di salto== Le '''istruzioni di salto''' modificano il valore del PC in modo che il fetch successivo venga effettuato in un'altra posizione d...
 
Gian BOT (discussione | contributi)
m Bot: sostituzione tag obsoleti
 
Riga 3:
Le '''istruzioni di salto''' modificano il valore del PC in modo che il fetch successivo venga effettuato in un'altra posizione di memoria.
 
Si distinguono istruzioni di salto condizionato (es. <ttcode>JNE</ttcode>) e di salto incondizionato (es. <ttcode>JMP</ttcode>).
 
===Tipi di salto===
Riga 16:
 
===Istruzioni di salto incondizionato===
L'istruzione <ttcode>JMP</ttcode> è un'istruzione di salto incondizionato di tipo near.
 
===Istruzioni di salto condizionato===
Riga 26:
! Salta se
|-
| <ttcode>JL</ttcode> o <ttcode>JNGE</ttcode>
| <ttcode>JB</ttcode> o <ttcode>JNAE</ttcode>
| <ttcode>destinazione</ttcode> < <ttcode>sorgente</ttcode>
|-
| <ttcode>JG</ttcode> o <ttcode>JNLE</ttcode>
| <ttcode>JA</ttcode> o <ttcode>JNBE</ttcode>
| <ttcode>destinazione</ttcode> > <ttcode>sorgente</ttcode>
|-
| <ttcode>JLE</ttcode> o <ttcode>JNG</ttcode>
| <ttcode>JBE</ttcode> o <ttcode>JNA</ttcode>
| <ttcode>destinazione</ttcode> ≤ <ttcode>sorgente</ttcode>
|-
| <ttcode>JGE</ttcode> o <ttcode>JNL</ttcode>
| <ttcode>JAE</ttcode> o <ttcode>JNB</ttcode>
| <ttcode>destinazione</ttcode> ≥ <ttcode>sorgente</ttcode>
|-
| <ttcode>JE</ttcode>
| <ttcode>JE</ttcode>
| <ttcode>destinazione</ttcode> = <ttcode>sorgente</ttcode>
|-
| <ttcode>JNE</ttcode>
| <ttcode>JNE</ttcode>
| <ttcode>destinazione</ttcode> ≠ <ttcode>sorgente</ttcode>
|}
 
Altre istruzioni di salto condizionato (ad es. <ttcode>JZ</ttcode> e <ttcode>JNZ</ttcode>) sono in grado di testare flag come SF e ZF lasciati dall'istruzione <ttcode>CMP <sorgente> <destinazione></ttcode>.
 
L'istruzione <ttcode>JCXZ</ttcode> salta se in CX è contenuto il valore 0.
 
Le istruzioni di salto condizionato sono di tipo short.
 
==Istruzioni di iterazione==
L'istruzione <ttcode>LOOP</ttcode> serve per la gestione dei cicli: decrementa di un'unità il registro CX, confronta il CX con 0, e se è diverso da 0 salta all'etichetta usata come parametro.
 
Il codice:
:<ttcode>LOOP <etichetta></ttcode>
è equivalente a:
:<ttcode>DEC CX</ttcode>
:<ttcode>CMP CX, 0</ttcode>
:<ttcode>JNE <etichetta></ttcode>
[[Categoria:Calcolatori elettronici|Istruzioni per il controllo del flusso]]