| 
      Sezione | 
      
       
   
    
      Indirizzi Base
    
    
    
      Registri Interni
    
      | 
    
| Capitolo 1 | 
| Il Processore e il Debugger | 
      DEBUG 16/22 [44 di 60]  | 
 
  | 
| 
       
  
    
      
        | 
      
       
  | 
      Aggiornato 24 settembre 2003 e 17 febbraio 2005 | 
| 
     | 
    
  | 
  
| Il 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; | |
| Se il comando è dato senza parametri | |
| Se l'indirizzo specificato è solo quello di offset i dati da scrivere si ritengono appartenenti al segmento CS. | 
| 
     
  | 
  
| 
           | 
          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!! | 
| 
     
  | 
  
| 
           | 
          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. | 
| 
     
  | 
  
Se, 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:
  
  | 
| 
          
         | 
      
   
          Se fai click sull'icona a 
          sinistra si apre l'Ambiente Assembly
          
          e puoi 
           
          
          provare DEBUG 
           
          
           on-line. Scegli 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 -  | 
    
| 
     
  | 
  
Se 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.
  | 
| 
     | 
    
  | 
  
| Il 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. | |||||||
La 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:
  
  | 
| 
     
  | 
  
| 
           | 
          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.  | 
      
| 
     
  | 
  
L'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):
 
  | 
  | 
| 
      
       |  
    Capitolo 1 | 
      
       | 
    DEBUG 16/22 | 
    
    ![]()  | 
    
    ![]()  | 
    
    ![]()  | 
 ||
| 44 di 60 | 
      
  | 
    
| 
     
  | 
  
        
  | 
    
        
  | 
    
| 
      
         
        Home 
     | 
      
  | 
    |||||||
      
  | 
       
          
        Motore Ricerca  | 
      
  |