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 1

Home » Programma il Computer » Tutorial Assembly

Capitolo 1 - Il processore - Il Debugger

  Il Processore e il Debugger

DEBUG 8/22 [36 di 60] 

    

 

Aggiornato  24 settembre 2003 e 17 febbraio 2005
    Comando F -  Riempie la memoria [azzeramento delle locazioni]
     
bulletQuesto comando è piuttosto comodo in particolari situazioni; l'uso del comando D (Dump) ci ha insegnato che l'analisi del contenuto della Ram di sistema è molto spesso casuale.

      

Ricorda... Tieni ben presente che il contenuto esadecimale delle locazioni di memoria è del tutto imprevedibile nel momento in cui Debug ne prende possesso: è possibile che i valori letti siano tutti a 00, ma non è da escludere qualunque altro valore (memoria "sporca") lasciato in Ram dall'uso da parte di precedenti applicativi.

      

bulletQuesta osservazione vale, ovviamente, anche nel segmento a disposizione del debugger; qualunque cosa venga inserita risulta poco probabile distinguerne la fine.
bulletPer questo ti consiglio di "pulire" il segmento prima di caricare il file da analizzare, evitando di entrare in Debug nel modo, per altro sacrosanto, suggerito in precedenza. Per studiare il file xxx.com (è solo un esempio!), dopo essere entrati in debug la sequenza possibile è mostrata in figura:

      

-f 100 e000 00
-n xxx.com
-l

      

bulletIl comando F (FILL, riempi) si aspetta l'intervallo di indirizzi (offset) iniziale e finale (nel nostro esempio 0100H e E000H); bisogna stare attenti a non esagerare: se si cancellano locazioni sotto l'indirizzo 005CH o sopra E000H (valore indicativo) il debug potrebbe "piantarsi". 
bulletLe aree esterne a questo intervallo sono infatti vitali per il suo funzionamento: nelle prime 92 locazioni sono presenti dati insostituibili del Prefisso di Segmento di Programma (PSP), mentre le ultime sono destinate allo stack; l'utilizzo del Symbolic Debug rende quest'ultima zona certamente sovradimensionata rispetto a quella di norma prevista (di solito è sufficiente riservare qualche decina di bytes in fondo al segmento, per esempio a partire da FF00H).
bulletSe l'indirizzo specificato è solo quello di offset i dati visualizzati si ritengono appartenenti al segmento puntato da DS; in condizioni di default (come quelle in cui operiamo ora) il problema non si pone (tutti e 4 i registri di segmento hanno lo stesso valore).
bulletIl terzo parametro del comando F può essere di diverso tipo: l'esempio suggerito utilizza un byte esadecimale di valore 00H. Dopo la conferma con Invio sembra non sia successo nulla; in realtà la memoria è stata riempita, in tempo reale, di 00H, come dimostra la seguente analisi con il comando D:
              
Apri una finestra DOS su Arch-Lab Se fai click sull'icona a sinistra si apre l'Ambiente Assembly e puoi provare DEBUG  on-line.
S
cegli il pulsante di opzione "Aprire il file" o "Esegui l'applicazione"  e conferma con OK.
NB: alcuni gestori di protezione (per esempio SP2 di WinXP) non ti consentono questa operazione:
in questo caso scrivi
c:\arch-lab\bin\sys\assembler.pif direttamente nel campo indirizzo del Browser

      

bulletPer evitare un crampo alla mano... dopo aver verificato l'azzeramento delle prime pagine abbiamo dato il comando D DFF0, puntando un indirizzo leggermente inferiore a quello finale passato al comando F: il risultato dell'indagine sottolinea che, effettivamente, dopo di esso nessun'altra locazione risulta azzerata.
bulletSe immaginiamo di caricare qualunque cosa in questo segmento di memoria è facile rilevare il suo ultimo byte, con grande probabilità quello dopo il quale comincia la lunga teoria degli zero...

    

Pagina Precedente Capitolo 1 Pagina Successiva DEBUG 8/22   Torna alla Home  del Capitolo1 del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
36 di 60
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

    

CAP. 1 » 1. Processore 80x86 2. Istruzioni 80x86  3. Debug  4. La Grande Libreria
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