Tutorial Sezione Assembler

Dettaglio Istruzioni 

Le Schede del Tutorial

  Istruzioni della Cpu 80x86

SCHEDA n° 07 [I/ 160 di 198] 

    

    RETN - Pone fine ad una procedura NEAR
     
bulletL'istruzione RETN organizza il ritorno al programma chiamante al termine di una procedura, cioè un sottoprogramma chiamato con CALL.
bulletLa procedura da cui si torna può essere di tipo NEAR, cioè posta dentro il segmento di codice in cui è chiamata, o FAR, in caso contrario; questa caratteristica impone all'istruzione un diverso modo di gestire le operazioni.
bulletNella 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.
bulletA 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.   
bulletLe sue caratteristiche sono riassunte nella seguente tabella (leggi le istruzioni Legenda della Tabella):
         
       RETN [numero pari]  equivale a   POP IP
 

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

RETN

 

16 11+m 10+m 5 1 1  

 

           

 

   

RETN

 02H

20 11+m 11+m 5 2 3
         
bulletLa tabella evidenzia che l'istruzione non altera alcuna flag. 
bulletSe la procedura da cui si torna è NEAR l'istruzione RETN provvede ai seguenti compiti:
bulletpreleva il byte contenuto nella locazione attualmente puntata da SP, lo trasferisce nella parte bassa di IP.
bulletincrementa il valore di SP e lo utilizza per puntare la locazione da cui prelevare il byte da utilizzare come parte alta di IP.
bulletincrementa ancora SP.
bulletsalta alla locazione di programma indicata dal nuovo valore di IP, praticamente l'indirizzo di offset della locazione del programma principale successiva a quella con la CALL che l'aveva costretto ad uscirne.
bulletSe insieme all'istruzione RETN 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.
     
bulletLa 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 di RETNEAR.
bulletDopo l'esecuzione di RETN, il processore è dunque rientrato nei ranghi..., nel programma principale da cui è partito, nel medesimo segmento.
bulletLa figura seguente mostra l'unico codice operativo di questa istruzione con i bytes dell'eventuale operando coinvolto (leggi le istruzioni):
          

Addr

Codifica Masm 

Sequenza Bytes 

Istruzione 

0100
0101
C3
C2 0002
C3
C2 02 00
     RETN
RETN 02H

    

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 160 - RETN

    

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