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

Schede del Tutorial

Home » Programma il Computer » Tutorial Assembly

Le Schede del Tutorial

  La Tabella dei Vettori

SCHEDA n° 04 [ 15  di 15] 

    

    Recupero e riattivazione del Vettore originale
     
bulletI 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.
bulletIn particolare, in caso di manomissione, dovrebbero occuparsi di rimettere nelle caselle della tabella gli indirizzi delle procedure di servizio originali.

      

bulletPer 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:

      

old_INT     DD    00000000H 

old_SEG     DW    0000H
old_OFF     DW    0000H

      

bulletNaturalmente 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].

      

bulletValgono quindi le tecniche suggerite nella pagina precedente, con le dovute piccole modifiche; in particolare:
bulletl'uso della specifica Funzione 25H del kernel del sistema operativo DOS (INT 21H) o l'uso delle normali tecniche di scrittura di memoria
bulletl'accortezza di disabilitare (CLI) le interruzioni mascherabili durante la modifica della Tabella dei Vettori, riabilitandole (STI) subito dopo.

      

bulletData 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):

      

            PUSH  DS                    
            CLI
            LDS   DX,CS:[old_INT]
            MOV   AL,xy
            MOV   AH,25H
            INT   21H

            POP   DS
            STI            

      

bulletPer 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):

      

            PUSH  DS                    
            CLI
            MOV   DX,CS:[old_OFF]
            MOV   DS,CS:[old_SEG]
            MOV   AL,xy
            MOV   AH,25H
            INT   21H

            POP   DS
            STI            

    

Pagina Precedente Scheda n° 04 Pagina Successiva La Tabella dei Vettori Torna al Menu delle Schede del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
Scheda n° 04 -  15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    

SCHEDE » 1.Header EXE 2.PseudoOp MASM 3.Differenza tra Macro e Procedure
4.
Tabella Vettori 5.PSP 6.Stack 7.Istruzioni 80x86
8.La misura dell'Informazione 9.Numeri e Logica Binaria
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