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 [ 23  di 26] 

    

    Gestione delle Procedure - PROC, ENDP
     
bulletSebbene non sia strettamente necessario l'inizio delle procedure dei nostri programmi può essere formalizzato con la PseudoOperazione PROC e la sua fine con la PseudoOperazione ENDP.
bulletLe procedure appartengono ad un Segmento di codice e possono essere chiamate con l'istruzione CALL: per questo devono terminare sempre con un'istruzione RET.
bulletLe 2 direttive devono esser sempre in coppia: se ci si dimentica di ENDP viene segnalato errore (Open procedures:<nomeprocedura>).
bulletDi solito dopo la direttiva PROC bisogna specificare l'attributo NEAR o FAR:
bulletse la procedura chiamata nello stesso segmento in cui è definita (con PROC e ENDP) essa è di tipo NEAR (vicina); in questo caso l'attributo può anche essere omesso e, addirittura, può essere eliminata tutta la struttura, limitandoci ad aggiungere i 2 punti dopo il nome della procedura.

      

Stampa PROC NEAR
       ; inserire qui le istruzioni
       RET
Stampa ENDP
Stampa:
       ; inserire qui le istruzioni
       RET

      

Ricorda... Le etichette con i 2 punti indicano sempre locazioni di tipo NEAR, per cui anche le eventuali procedure così definite saranno di tipo NEAR.

      

bulletSe la procedura dovrà essere chiamata all'interno di segmenti diversi da quello nel quale la stiamo definendo, deve essere dichiarata FAR (lontana); in questo caso bisogna ovviamente evitare di definire la procedura con i 2 punti finali:

      

Stampa PROC FAR
       ; inserire qui le istruzioni
       RET
Stampa ENDP

      

bulletNei nostri programmi eviteremo di far ricorso alle procedure FAR; la scelta di realizzare codici sorgente destinati a generare programmi eseguibili di tipo COM impone la necessità di un solo segmento, nel quale troveranno posto tutte le parti componenti (istruzioni, variabili e stack).
bulletLa scelta intrasegmentale da per scontato che tutte le procedure interne (anche quelle importate dalle librerie) siano di tipo vicino (NEAR), per cui eviteremo anche di usare la struttura PROC NEAR/ENDP, limitandoci a definire le nostre procedure con i 2 punti finali.
bulletPer onore del vero (e per puro senso estetico) detta struttura sarà usata una-tantum solo per il Main Program, cioè per dare un guscio estetico a tutto il nostro codice sorgente (vedi Matrici):

      

PAGE 66,132
_prog    SEGMENT BYTE PUBLIC 'CODE'
        
ASSUME  CS:_prog,DS:_prog
         ORG      0100H
INIZIO:  JMP     
Main
ATTRIB   DB       0FH
Stampa
; inserire qui le istruzioni
         RET
Main     PROC    NEAR
         ; inserire qui le istruzioni
         CALL    
Stampa
         ; inserire qui le istruzioni
Main     ENDP

_prog    ENDS
         END INIZIO

    

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 -  23
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