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

Capitolo 2

Home » Programma il Computer » Tutorial Assembly

Capitolo 2 - Gli strumenti di lavoro

  Gli strumenti di Lavoro

ASSEMBLATORE 8/17 [27 di 87] 

    

    Cosa contiene il file LST? (Analisi del codice assemblato)
     
bulletIl file listato è certamente quello più utile, dei 2 opzionali offerti dall’Assemblatore MASM; si tratta di un file di testo ASCII con estensione LST, simile al programma sorgente da cui prende origine.

      

PROVA.LST 1.410 15/08/01 18.57   PROVA1.LST 1.851 16/08/01 12.36

      

bulletLa struttura del file LST si articola in 2 parti ben distinte:

      

bulletla prima offre un interessante modo per vedere come l'assemblatore organizza e traduce il codice assembly che gli è stato affidato; è quella più voluminosa ed è organizzata per pagine consecutive, numerate ed intestate singolarmente.
bulletla seconda è la famosa Tavola dei Simboli, creata dall'assemblatore nella prima passata.

      

bulletLa prima parte è una versione estesa del file ASM: ai 4 campi originali (etichetta, codice operativo, operandi e commento) ne sono aggiunti altri 3, a sinistra dei precedenti:

      

bulletIl primo campo mostra il numero progressivo di ogni riga del codice sorgente; ad esso fanno riferimento tutti i files generati da MASM ed è utile per localizzare ogni parte del codice, specialmente in presenza d'errori durante la compilazione.
bulletla seconda colonna con l’indirizzo di Offset (rispetto al segmento di Codice) in cui verranno caricati i bytes del codice macchina del programma; naturalmente la parte Segment dell'indirizzo è stabilita dal loader del Sistema Operativo, al momento dell'allocazione del programma in memoria, nel primo segmento libero. Anche questa parte di LST è interessante per conoscere quali saranno i valori che il processore metterà di volta in volta nel proprio Program Counter.
bulletla terza colonna mostra il codice macchina generato per ciascuna istruzione; la sua analisi, sorretta sempre da spirito di curiosità, ti può aiutare a memorizzare alcuni codici operativi importanti come CDH (per INT) E8H (per CALL) o C3H (per RET): la loro conoscenza cura nella terza colonna. 
bulletla parte rimanente, a destra, è esattamente la copia del testo fornito in ingresso nel file ASM.

      

bulletVediamo in dettaglio il contenuto di questa parte dei 2 files Prova.LST e Prova1.LST (puoi scaricarli o leggerli cliccando sui link).

      

Microsoft (R) Macro Assembler Version 5.10 8/15/1    Page 1-1

  1 0000            _prog   SEGMENT BYTE PUBLIC 'CODE'
  2                         ASSUME CS:_prog,DS:_prog
  3 0100                    ORG    0100H
  4 0100 B4 00      INIZIO: MOV    AH,00H    ;Pulisci lo schermo
  5 0102 B0 03              MOV    AL,03H    ;(ClearScreen)
  6 0104 CD 10              INT    10H
  7 0106 B4 00              MOV    AH,00H    ;Aspetta la pressione
  8 0108 CD 16              INT    16H       ;di un tasto
  9 010A B4 4C              MOV    AH,4CH    ;Torna al dos
 10 010C CD 21              INT    21H
 11 010E            _prog   ENDS
 12                         END    INIZIO

    

Microsoft (R) Macro Assembler Version 5.10 8/15/1   Page 1-1

  1 0000            _prog   SEGMENT BYTE PUBLIC 'CODE'
  2                         ASSUME CS:_prog,DS:_prog
  3 0100                    ORG    0100H
  4 0100 EB 0D 90   INIZIO: JMP    Main
  5 
  6 0103 B4 00      KeyWait:MOV    AH,00H    ;Aspetta la pressione
  7 0105 CD 16              INT    16H       ;di un tasto
  8 0107 C3                 RET
  9 
 10 0108 B4 00      BiosCls:MOV    AH,00H    ;Pulisci lo schermo
 11 010A B0 03              MOV    AL,03H    ;(ClearScreen)
 12 010C CD 10              INT    10H
 13 010E C3                 RET
 14 
 15 010F E8 0108 R  Main:   CALL   BiosCls
 16 0112 E8 0103 R          CALL   KeyWait
 17 0115 B4 4C              MOV    AH,4CH     ;Torna al dos
 18 0117 CD 21              INT    21H
 19 
 20 0119            _prog   ENDS
 21                         END    INIZIO

      

Suggerimento Memorizza i codici operativi delle principali istruzioni (per esempio CDH per INT, E8H per CALL, C3H per RET) e osserva in che modo vengono tradotti gli operandi.
Ti aiuterà a capire meglio il processore
con cui lavori e può tornare utile per localizzare a colpo d'occhio le istruzioni tra i bytes di un codice macchina (
COM) che desideri analizzare.

      

bulletIl compilatore MASM organizza il file LST in un documento stampabile di più pagine consecutive, ciascuna di 58 righe da 80 caratteri per riga, numerate ed intestate singolarmente; di solito utilizza una intestazione standard (guarda la prima riga di ognuna delle tabelle precedenti) ma è possibile personalizzarla con l'aggiunta di altre 2 righe (titolo e sottotitolo) purché il sorgente abbia, all'inizio, le 2 pseudooperazioni opzionali, TITLE e SUBTTL.

      

bulletConsulta la scheda ad esse dedicata: ti insegna a servirti con profitto di queste Pseudo Istruzioni di MASM, sollevando anche un interessante problema di incompatibilità tra gli 80 caratteri per riga predisposti automaticamente e i 120 caratteri effettivamente necessari, dopo che MASM ha aggiunto le 40 colonne, sulla sinistra del testo del nostro sorgente, per poter documentare le informazioni descritte all'inizio. Ti verrà anche suggerito il modo di risolvere l'inghippo con la pseudooperazione PAGE.

    

Pagina Precedente Capitolo 2 Pagina Successiva ASSEMBLATORE 8/17   Torna alla Home  del Capitolo1 del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
27 di 87
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87

    

CAP 2 » 1. Catena di Compilazione 2. Editor 3. Assemblatore 4. Linker 5. Exe2Bin
6.
Ambiente di Lavoro 7. Gestore d'Ambiente Macro 8. Gestore d'Archivi OG
9. Matrici per i Programmi Sorgente 10. Gestore di Librerie Lib 
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