|
 |
Gli strumenti di Lavoro |
ASSEMBLATORE 9/17
[28 di 87] |
 |
|
Cosa contiene il file LST? (Analisi
della Tavola dei Simboli) |
|
 | La seconda parte
è la Tabella delle Etichette (o Tavola dei Simboli); sulle etichette
e sul modo con cui l'assemblatore le trova sappiamo già tutto! |
 | Naturalmente sono etichette
(simboli) tutte le
parole del codice sorgente diverse dagli mnemonici delle istruzione e dalle
parole chiave dell'assemblatore; tra esse il nome dei segmenti, delle
variabili e delle procedure (esterne o interne), delle costanti, delle
strutture, delle macroistruzioni, e così via. |
 | L'aspetto di questa parte del file listato è mostrato nelle
successive tabelle, una ciascuna per i nostri 2 programmi pilota:
Microsoft (R) Macro Assembler Version 5.10 8/15/1
Symbols-1
Segments and Groups:
Name
Length Align Combine Class
_PROG . . . . . . . . . . . . . 010E BYTE
PUBLIC 'CODE'
Symbols:
Name
Type Value Attr
INIZIO . . . . . . . . . . . . . L NEAR 0100 _PROG
@CPU . . . . . . . . . . . . . . TEXT 0101h
@FILENAME . . . . . . . . . . . TEXT PROVA
@VERSION . . . . . . . . . . . . TEXT 510
12 Source Lines
12 Total Lines
8 Symbols
47172 + 306440 Bytes symbol space free
0 Warning Errors
0 Severe Errors
|
Microsoft (R) Macro Assembler Version 5.10 8/16/1
Symbols-1
Segments and Groups:
Name
Length Align Combine Class
_PROG . . . . . . . . . . . . . 0119 BYTE
PUBLIC 'CODE'
Name
Type Value Attr
BIOSCLS . . . . . . . . . . . . L NEAR 0108
_PROG
INIZIO . . . . . . . . . . . . . L NEAR 0100 _PROG
KEYWAIT . . . . . . . . . . . . L NEAR 0103
_PROG
MAIN . . . . . . . . . . . . . . L NEAR 010F _PROG
@CPU . . . . . . . . . . . . . . TEXT 0101h
@FILENAME . . . . . . . . . . . TEXT prova1
@VERSION . . . . . . . . . . . . TEXT 510
21 Source Lines
21 Total Lines
11 Symbols
47154 + 306458 Bytes symbol space free
0 Warning Errors
0 Severe Errors
|
|
 | Con riferimento al listato di Prova1, vediamo
come vengono definite le diverse categorie:
 |
segmenti e gruppi: nel nostro esempio è definito solo un segmento
(quello di codice) di nome (name)
_prog, dimensione (length)
0119H =89 bytes, allineamento (align)
di tipo byte, rango (combine)
Public e classe (class)
'Code' (i dettagli di queste definizioni sono disponibili nella scheda). |
 | simboli:
è la categoria di norma più numerosa; il nostro esempio utilizza solo
simboli di tipo (type)
L near; per esempio quello di nome
(name) INIZIO ha valore
(value) 0100H e attributo
(attr) _prog; sembra superfluo
sottolineare che il tipo sta ad indicare che cosa rappresenta
l'etichetta (in questo caso un indirizzo del
codice di tipo near, ma può essere anche byte, numero o
altro), mentre l'attributo rappresenta l'area (il segmento)
a cui appartiene.
Riportiamo alcuni altri simboli facilmente riscontrabili nei nostri
programmi:
N a m e
Type Value Attr
CR . . . . . . . . . NUMBER 000D
ESC_ . . . . . . . . NUMBER 001B
LF . . . . . . . . . NUMBER 000A
ATTRIB . . . . . . . L BYTE 0103 _PROG Global
NEARCOM . . . . . . . N PROC 011D _PROG Global Length = 0010
BIOSCLS . . . . . . . L NEAR 0000 External
KEYWAIT . . . . . . . L NEAR 0000 External
RIP_CUR . . . . . . . L NEAR 0000 External
VIA_CUR . . . . . . . L NEAR 0000 External |
|
 | se il programma sorgente utilizza le macro
è presente anche questa categoria; con riferimento ad alcune macro del
nostro ambiente, nella tabella figurerà il nome
(name) e il numero di linee
(istruzioni) (lines) introdotte
dalla macroistruzione:
Macros
Name
Lines
M_CURSOR . . . . . . . 5
M_MSGC . . . . . . . . 6
M_MSGN . . . . . . . . 4 |
|
 | la tabella termina con alcune informazioni
formali su:
 | tipo di processore (@CPU)
per il quale vale il codice prodotto |
 | nome del file sorgente (@FILENAME) |
 | versione del compilatore (@VERSION)
che ha prodotto il codice |
 | numero di linee di solo codice (Source Lines) |
 | numero di linee totale (Total Lines) |
 | numero totale di simboli descritti (Symbols) |
 | quantità di errori di avvertimento (Warning Errors) |
 | quantità di errori gravi (Severe Errors) |
|
|
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|