Sezione

Indirizzi Base Registri Interni
Area Comunicazione BIOS Funzioni BIOS Funzioni DOS
Prefazione Capitolo 1 Capitolo 2 Schede
Libreria ASM Libreria MAC Palestra Progetti ASM
Info Download INDICE

Schede del Tutorial

Home » Programma il Computer » Tutorial Assembly

Le Schede del Tutorial

  Differenza tra Macro e Procedure

SCHEDA n° 03 [ 2  di 4] 

    

    Cosa sono le Procedure
     
bulletUna Procedura è un insieme di istruzioni specializzato nel compiere un determinato compito; di frequente una sequenza di istruzioni, progettata per un determinato programma, può tornar utile anche ad altri o, addirittura, può essere utilizzata più volte anche dal programma che l'ha definita:
bulletal primo gruppo appartengono procedure come la ClearScreen, specializzata nel pulire il piano di lavoro: è impensabile pensare ad un eseguibile che non provveda a questa necessità prima di cominciare il suo compito.
bullettra le procedure di servizio è significativa quella che stampa un carattere a video: impossibile farne a meno se si devono presentare messaggi o risultati..

               

bulletPer questa ragione è molto saggio abituarsi ad estrarre queste parti di codice e renderle autonome, dando loro un nome e una struttura; in aggiunta può tornare utile raggrupparle in Raccolte, delle Librerie, facilmente visibili da ogni sorgente interessato al loro utilizzo con l'aiuto della direttiva EXTRN.

               

bulletAnche il nostro Ambiente Assembler è allineato su questa filosofia, rendendo disponibile la preziosa Libreria Giobe.ASM/LIB, con le più ricorrenti e utili procedure richieste nella programmazione assembly; sono disponibili anche quelle citate come esempio, rispettivamente la BIOScls e la BIOchr1; puoi conoscerle e studiarle una per una della apposita sezione GiobeASM.

               

bulletVediamo ora di riassumere le caratteristiche di una Procedura:
bulletil progetto di una procedura coinvolge il programmatore in uno sforzo una-tantum, ben ripagato dal fatto che il suo lavoro sarà riutilizzabile in molte altre occasioni, con notevole risparmio di tempo
bulletper assicurarsi il servizio di una procedura basta infatti una sola istruzione, di norma la CALL
bulletper la sua definizione si utilizzano le direttive PROC e ENDP, all'interno delle quali sono raccolte le istruzioni chiamate a svolgere il compito affidato al sottoprogramma; ciascuna delle due direttive sarà preceduta dal nome scelto per la procedura
bulletdopo la direttiva PROC si specifica il tipo di procedura che si desidera progettare, Near o Far; nel primo caso la procedura può essere chiamata solo all'interno del segmento di codice di definizione, mentre nel secondo la procedura può essere chiamata anche a partire da segmenti di codice diversi da quello di definizione
bulletuna procedura Near (intrasegmentale) può essere definita anche senza queste formalità, semplicemente aggiungendo : (due punti) dopo il suo nome
bulletper assicurarsi il servizio di una procedura basta una sola istruzione, di norma la CALL
bulletil tipo e il numero di istruzioni che raccoglie è irrilevante; di certo l'ultima dovrà essere l'istruzione RET
bulletla presenza della RET finale consente al processore di rientrare nel programma chiamante, subito sotto l'istruzione (CALL Nome_Proc) che ha eseguito la chiamata
bulletil rientro è reso possibile dal fatto che l'istruzione CALL ha salvato nello stack l'indirizzo dell’istruzione a sé successiva (la sola parte offset, se di tipo Near, o quello completo segment:offset, se di tipo Far) e che l'istruzione RET lo ha recuperato nei medesimi registri puntatori di programma (solo IP, se Near, o CS:IP, se Far)
bulletè possibile differenziare il funzionamento di una procedura passandole parametri; un parametro è di norma un valore binario predisposto dal programma chiamante in registri o variabili locali, condivise con la procedura
bulletanche la procedura può lasciare eventuali risultati in registri o variabili locali, condivise con il programma chiamante
bulletin generale, in queste operazioni di scambio, la disponibilità dei registri è ovviamente estremamente limitata rispetto a quella delle variabili locali, pressocché infinite

      

Suggerimento La definizione e l'uso delle Procedure rende i programmi più organizzati e leggibili e fa risparmiare tempo di programmazione e memoria di programma

    

Pagina Precedente Scheda n° 03 Pagina Successiva Differenza tra Macro e Procedure Torna al Menu delle Schede del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
Scheda n° 03 -  2
1 2 3 4

    

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