| 
      Sezione | 
      
       
   
    
      Indirizzi Base
    
    
    
      Registri Interni
    
      | 
    
| Schede del Tutorial | 
| La Tabella dei Vettori | 
      SCHEDA n° 04 [ 15 di 15]  | 
   
  | 
| 
     | 
    
  | 
  
| I programmi che si appropriano dei Vettori della Tabella dovrebbero provvedere alla loro disinstallazione completa, cioè tale da garantire il ripristino assoluto del sistema, in modo da lasciare, in uscita, condizioni completamente identiche a quelle trovate in ingresso. | |
| In particolare, in caso di manomissione, dovrebbero occuparsi di rimettere nelle caselle della tabella gli indirizzi delle procedure di servizio originali. | 
| 
     
  | 
      
Per questa ragione i programmi TSR ben progettati 
  conservano dentro di sè le locazioni di deposito con i vettori delle procedure 
  di sistema eventualmente sostituiti, per esempio nella forma e con il nome di 
  quelle discusse in queste pagine:
 
 
  | |||||
| Naturalmente la fase di ripristino è del tutto analoga a quella trattata in precedenza a proposito dell'Installazione di un nuovo Gestore, con la differenza che, ora, il puntatore da rimettere nella Tabella dei Vettori d'Interruzione non è CS:new_INT ma il contenuto delle 4 locazioni di deposito, espresse nella forma a 2 word, CS:[old_SEG] e CS:[old_OFF], oppure in quella a doubleword, CS:[old_INT]. | 
| 
     
  | 
      
Valgono quindi le tecniche suggerite nella pagina 
  precedente, con le dovute piccole modifiche; in particolare:
  | 
| 
     
  | 
      
Data l'inutilità di ribadire concetti già espressi ci 
limitiamo a descrivere la tecnica di Ripristino del Vecchio vettore con la 
  Funzione 25H del DOS (per altro di gran lunga 
più pratica delle altre tecniche); come valore aggiunto mostriamo l'uso della 
  potente istruzione LDS, che assume in un 
  colpo solo i 4 bytes conservati nella 
  doubleword CS:[old_INT] e li lascia 
  nei registri DS:DX, a disposizione della 
  funzione DOS (alla quale si passa in AL 
  anche il numero del vettore da ripristinare):
 
 
  | ||||
Per completezza mostriamo anche il codice assembly per fare 
  la stessa operazione a partire dai 4 bytes conservati nelle 2 
  word CS:[old_OFF] 
  e  CS:[old_SEG]: anche in questo 
  caso sono lasciati nei registri DS:DX, a 
  disposizione della funzione DOS (alla quale si passa in AL 
  anche il numero del vettore da ripristinare):
 
  | 
  | 
| 
      
       |     
    Scheda n° 04 | 
      
       | 
    La Tabella dei Vettori | 
     | 
    
    
     | 
    
     | 
 ||
| Scheda n° 04 - 15 | 
      
  | 
    
| 
     
  | 
  
        
  | 
    
        
  | 
    
| 
      
         
        Home 
     | 
      
  | 
    |||||||
      
  | 
       
          
        Motore Ricerca  | 
      
  |