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 16/22 [44 di 60] 

    

 

Aggiornato  24 settembre 2003 e 17 febbraio 2005
    Comando W -  Scrivi su disco il codice di un file eseguibile 
     
bulletIl comando W (WRITE, scrivi) permette di creare un file (o sovrascriverlo, se già esiste) nella cartella corrente del disco; di solito viene dato dopo aver specificato il nome (e l'eventuale percorso) del file con il comando N, già discusso in precedenza
bulletSe il comando è dato senza parametri
bulletSe l'indirizzo specificato è solo quello di offset i dati da scrivere si ritengono appartenenti al segmento CS.

      

Ricorda... Quando si usa il comando W per salvare il nostro lavoro in un file sul disco non bisogna dimenticare di caricare nei registri BX e CX la parte alta e bassa del numero a 32 bytes che indica la quantità di bytes da salvare!!

      

Suggerimento Il modo più semplice per calcolare il numero da mettere in BX,CX consiste nel prendere l'indirizzo di offset della locazione successiva all'ultima e sottrarre da esso il numero 0100H.

      

bulletSe, dopo una sessione di lavoro abbiamo prodotto una codice eseguibile (o una tabella) di 200 bytes, al momento del salvataggio su disco dobbiamo eseguire, in sequenza, tutte queste operazioni:
bulletdare un nome al file da creare (o sovrascrivere)
bulletscrivere in BX il valore 0000H e i CX il valore 00C8H (esadecimale di 200)
bulletfinalmente scrivere e confermare il comando W:
              
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
-n miofile.com
-r bx
BX 0000
:0000
-r cx
CX 0000
:00c8
-w
Scrittura di 000C8 byte in corso
-
-n miofile.com
-r bx 0000
-r cx 00c8
-w
Writing 00C8 bytes
-

      

bulletSe tutto va bene debug mostra il messaggio mostrato in figura (a sinistra con Debug standard e a destra con SymbDeb), e rimane in attesa di ulteriori comandi.

      

    
    Comando W -  Scrivi i bytes di uno o più settori di un disco
     
bulletIl comando W (WRITE, scrivi) è complementare al comando L, usato per caricare in memoria uno o più settori di una memoria di massa (hard disk o floppy disk); naturalmente serve per fare l'operazione opposta.
bulletLa specifica dell'indirizzo (offset) da cui prelevare i bytes da salvare su disco, è dunque indispensabile: essa deve essere eseguita dopo il comando W e prima dei 3 parametri necessari per individuare i settori del disco da sovrascrivere:
bulletil primo è un numero che indica il disco su cui scrivere i dati: 0 per il drive A, 1 per il drive B, 2 per il drive C, e cosi via...
bulletil secondo è il numero (logico) del primo settore da sovrascrivere nel disco appena indicato; la descrizione di questo numero è già stata ampiamente discussa nella pagina precedente; non ci sembra il caso di ripeterla.
bulletil terzo e il numero di settori da scrivere;  non è possibile leggere più di 80 settori, pari a 40k di memoria.

      

Ricorda... Ti prego di fare molta attenzione: la pratica del comando W è ad altissimo rischio!! Se usata con discrezione, sicurezza e competenza può rivelarsi uno strumento potente, ma non dimenticare che quando la usi ti comporti come un virus: cancelli e sostituisci parti del tuo disco!!
Ti consiglio di
fare le prove con un dischetto floppy e di non toccare l'HD, se non sei ben certo di quello che fai.

      

bulletL'esempio mostra come scrivere su un floppy disk i 2kbytes (4 settori) attualmente presenti all'indirizzo CS:1000H; si legge: preleva a partire dalla locazione 1000, i bytes da scrivere sul disco 0 (driver A); il primo settore da sostituire è il 64 (valore esadecimale pari a 100) nella quantità 4 (4 settori, cioè 512*4 bytes = 2048 bytes = 2k):

      

-w 1000 0 64 4 ; comando per scrivere 4 settori sul disco

    

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