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

  Le PseudoOperazioni di MASM

SCHEDA n° 02 [ 08  di 26] 

    

    Gestione delle MacroIstruzioni - IF1, INCLUDE, ENDIF
     
bulletL'uso delle MacroIstruzioni è molto utile ma spesso la loro definizione, all'inizio di un programma, è piuttosto voluminosa; la presenza dei testi che le definiscono ritarda spesso l'inizio della lettura del programma, cosa talvolta fastidiosa e indesiderata.
bulletLa soluzione sta nell'estrarre tutte le Macro definite, di volta in volta, dai nostri programmi sorgente, raccogliendole in una libreria, partendo dal presupposto che quasi certamente torneranno utili anche in altri programmi.

      

bulletNaturalmente dopo averle estratte dal programma se non si prendono provvedimenti non saranno più reperibili dal compilatore che, alla prima etichetta non trovata, segnalerà errore (error A2105: Expected: instruction, directive, or label).
bulletPer renderle ancora visibili senza che siano fisicamente presenti di usa la PseudoOperazione INCLUDE, che di occupa di cercare sul disco fisso un file di testo e di inserirlo pari pari nel punto in cui si esplicita questa richiesta; naturalmente se il file non viene trovato viene segnalato errore (error A2116: Include file not found: GIOBE.MAC) e la direttiva viene ignorata.
bulletLa figura mostra le 3 righe di programma, sempre presenti nelle nostre Matrici, al fine di rendere disponibile la libreria di Macro Giobe.MAC(clicca qui se vuoi scaricarla):

      

; MACRO UTILIZZATE DAL PROGRAMMA:
if1 
   include GIOBE.MAC ;(C:\ARCH-LAB\BIN\GIOBE.MAC) 
endif 
     
bulletNaturalmente la direttiva INCLUDE si presta ad "includere" qualsiasi cosa, per cui è necessario essere ben certi di richiedere testi compatibili con il nostro programma sorgente; potrebbe essere utile, per esempio, dividere programmi lunghi in più pezzi, ciascuno su un file diverso, unendoli poi tra loro con questo comando.

      

bulletCertamente ci si chiederà perchè la direttiva INCLUDE sia anticipata e posticipata da altre 2 PseudoOperazioni: IF1 obbliga il compilatore a fare l'acquisizione solo durante la prima passata e ENDIF è sintatticamente necessaria per chiudere la richiesta condizionata.

      

bulletLa presenza di IF1 (= se stai eseguendo la prima passata) evita inutile lavoro al compilatore: durante la prima passata legge il file che raccoglie le nostre MacroIstruzioni, annota le etichette di ciascuna di esse nella Tabella dei Simboli, e sostituisce le chiamate alle Macro con i rispettivi corpi; nella seconda, se non è presente IF1, aggiunge al listato tutto il testo contenuto nel file incluso, marcando con una C ogni riga aggiunta, operazione del tutto inutile, sia perchè allunga a dismisura il listato, sia perchè i compiti indispensabili sono già stati assolti durante la prima passata. La figura mostra le righe (da 3 a 8, poche solo perchè miniLib.Mac contiene solo quelle) che non sarebbero presenti se avessimo usato IF1/ENDIF:

      

        include miniLib.MAC






         EXTRN BIOSmsg:NEAR
 2               include miniLib.MAC
 3      C M_msgN MACRO Testo
 4      C        PUSH SI
 5      C        LEA SI,Testo
 6      C        CALL BIOSmsg
 7      C        POP SI
 8      C        ENDM
10               EXTRN  BIOSmsg:NEAR

      

bulletCertamente IF1 ed ENDIF potranno tornare utili anche in altre occasioni simili a questa, insieme ad altre pseudooperazioni condizionali come IF e ELSE; queste ed altre numerose altrenative sono raccolte nella Tabella Analitica e non verranno trattate ulteriormente.

    

Pagina Precedente Scheda n° 02 Pagina Successiva Pseudo Operazioni di MASM Torna al Menu delle Schede del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
Scheda n° 02 -  08
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

    

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