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

    

    Gestione dei Segmenti - GROUP
     
bulletLa PseudoOperazione GROUP obbliga l'assemblatore a creare un unico SEGMENT a partire da 2 o più SEGMENT componenti; il nuovo nome del gruppo deve essere specificato davanti alla direttiva; naturalmente ciascuno dei segmenti componenti deve essere stato dichiarato in precedenza.

      

bulletTutte i simboli (etichette delle variabili e degli indirizzi) dei segmenti concorrenti saranno riferiti a partire dall'indirizzo iniziale del segmento complessivo; la possibilità di riunire con lo stesso nome vari pezzi di codice dello stesso tipo, in un'unica area di 64k, può essere veramente utile.

      

bulletIl nome del GROUP può ovviamente essere utilizzato dalla direttiva ASSUME; vediamo un esempio di applicazione (notare che ORG è specificata solo nel primo segmento (_prog) e che entrambi fanno riferire (ASSUME) CS e DS al nuovo segmento alfa): 

      

PAGE 66,132
alfa     GROUP _prog,_prog1

_prog
    SEGMENT BYTE PUBLIC 'CODE'
        
ASSUME  CS:alfa,DS:alfa
         ORG   0100H
INIZIO:  NOP
_prog    ENDS
;----------------------------------
_prog1   SEGMENT BYTE PUBLIC 'CODE'
        
ASSUME  CS:alfa,DS:alfa
INIZIO:  MOV   AL,01
_prog1   ENDS
;----------------------------------
         END INIZIO

Segments and Groups:
------------------------------------
Name   Length Align Combine Class
ALFA   GROUP
_PROG  0121   BYTE  PUBLIC  'CODE'
_PROG1 0002   BYTE  PUBLIC  'CODE'
     
    Gestione del Programma - ORG
     
bulletLa PseudoOperazione ORG consente di assegnare al contatore di locazioni un valore diverso da quello corrente; di solito questo contatore è espresso da un numero intero positivo di 2 bytes e tien conto della posizione relativa di ogni byte inserito nel segmento di codice o in un segmento di dati.

      

bulletE' ragionevole pensare che inizi con il valore 0000H e che si incrementi, di volta in volta, della dimensione in bytes dell'oggetto che sta puntando (istruzione, variabile, ecc.).

      

bulletLa ragione per la quale è degno di nota sta nel fatto che il codice macchina di un programma intrasegmentale (come i nostri) deve essere strutturato per diventare un eseguibile di tipo COM; per questo deve partire dall'indirizzo 0100H (=256), dato che le prime 256 locazioni sono in questo caso destinate al sistema operativo (PSP, prefisso di segmento di programma).
   
    Gestione del Programma - END
     
bulletLa PseudoOperazione END fissa la fine del modulo da compilare; ogni cosa inserita sotto di essa viene ignorata; se si dimentica di scriverla il codice non viene compilato ed è segnalato errore (End of file encountered on input file).

      

bulletPur essendo opzionale è opportuno dichiarare, subito dopo di essa, l'etichetta della prima istruzione del programma; quando i moduli (oggetti) da unire sono più di uno, solo il primo di essi (in genere il principale) definisce la sua prima istruzione con l'etichetta usata da END.

      

          ORG   0100H
INIZIO:  JMP   MAIN
           .........
          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 -  20
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