Tutorial |
Dettaglio Istruzioni |
Istruzioni della Cpu 80x86 |
SCHEDA n° 07 [I/ 159 di 198] |
|
|
L'istruzione RETF organizza il ritorno al programma chiamante al termine di una procedura posta in un segmento diverso da quello in cui è chiamata, cioè un sottoprogramma chiamato con CALL FAR. | |
Nella normale programmazione non è necessario specificare esplicitamente il tipo di RET desiderato: l'assemblatore, infatti, è in grado di generare automaticamente il codice corretto in funzione del contesto near (RETN) o far (RETF) in cui è trovata l'istruzione RET. | |
A questa istruzione si può, se necessario, passare un operando numerico che esprime il numero di byte di stack che devono essere scaricati dopo il recupero dell'indirizzo ritorno; questa opportunità è frequentemente utilizzata dai linguaggi di programmazione ad alto livello per liberare l'area stack dai parametri passati in ingresso alla procedura da cui si torna. |
Le sue caratteristiche sono riassunte nella seguente tabella (leggi le istruzioni ): |
RETF [numero pari] | equivale a POP IP + POP CS | |||||||||||||||
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 | ||
RETF |
|
26 | 15+m | 18+m | 13 | 1 | 1 |
|
|
|||||||
RETF |
10H |
25 | 15+m | 18+m | 13 | 2 | 3 |
La tabella evidenzia che l'istruzione non altera alcuna flag. |
Se la procedura da cui si torna è FAR
l'istruzione RETF provvede ai seguenti compiti:
| |||||||||||||
Se insieme all'istruzione RETF viene fornito un operando numerico, dopo le consuete operazioni illustrate qui sopra, il numero viene semplicemente sommato a SP; questo significa effettivamente "scaricare" i bytes dallo stack, anche se ovviamente di essi rimarrà traccia in memoria, almeno fino al prossimo riutilizzo di questa preziosa area. |
La sequenza precedente è tratta dalle preziose schede dedicate allo Stack: se vuoi scoprire in dettaglio cosa fa il processore in questo caso consulta quelle dedicate alla gestione della RETFAR. |
Dopo l'esecuzione di RETF, il processore è dunque rientrato nei ranghi..., nel programma principale da cui è partito, in un altro segmento. |
La figura seguente mostra l'unico codice operativo di questa istruzione con i bytes dell'eventuale operando coinvolto (leggi le istruzioni): |
|
|
Scheda n° 07 | Istruzioni Cpu 80x86 | |||||||
Istruzione 159 - RETF |
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|