Sezione |
Indirizzi Base
Registri Interni
|
Schede del Tutorial |
La Tabella dei Vettori |
SCHEDA n° 04 [ 2 di 15] |
|
|
Nel quarto paragrafo del Capitolo2 (La Grande Libreria) abbiamo parlato ampiamente delle procedure di sistema, disponibili subito dopo la fase iniziale di accensione del nostro computer, citando spesso questa struttura come un magico meccanismo in grado di trovare ed utilizzare la risorsa in base al solo numero esadecimale che la contraddistingue. |
|
La Tabella dei Vettori ospita l'elenco degli entry-point (indirizzo logico, segment:offset) di ciascuna delle possibili 256 procedure di sistema allocate nel BIOS e nel sistema operativo e catalogate progressivamente per numero, da 00H a FFH. |
|
Poiché ciascun puntatore
è strutturato nella forma segment:offset
(cioè coinvolge 4 bytes) possiamo osservare che:
| ||||||||||||||||||||||||||
La Tabella dei Vettori è scritta in Ram per cui, all'inizio non contiene alcun dato utile; solo al termine della fase di boot-strap le sue voci sono disponibili, almeno in parte: il Bios e il sistema operativo provvedono ad annotare i vettori che appartengono loro, di solito poco più di un centinaio (su 256 possibili). |
La sua natura ram consente anche di modificare a piacere il valore di ciascun puntatore: | |
Molti vettori rimangono inutilizzati, ma quelli formalmente riconosciuti sono straordinariamente utili; i processori 80x86 hanno infatti un'apposita istruzione in grado di accedere alle procedure di sistema puntate da ciascuno di essi semplicemente passandole come operando il numero corrispondente. | |
Si tratta dell'istruzione INT xyH, con xyH tra 00H e FFH, nota come interrupt software. | |
Il suo compito assomiglia a quello svolto dall'istruzione CALL address: la differenza sta nel fatto che questa è destinata a chiamare le nostre procedure (cioè quelle definite per nostro comodo nei nostri programmi sorgente) mentre INT xyH rende disponibili le procedure di sistema (cioè quelle predisposte dal costruttore nella BIOS o dal sistema operativo o dalle sue estensioni). |
|
Poichè la Tabella dei Vettori è allocata in ram è possibile modificare a piacere il valore di ciascun puntatore in essa contenuto: questa operazione estremamente potente (sebbene, qualche volta, ad alto rischio) obbliga il processore ad eseguire procedure alternative, senza che se ne accorga!! |
|
In effetti il processore è chiamato ad eseguire la procedura puntata dal vettore estratto dalla posizione (in tabella) proporzionale ad un determinato numero di INT..., indipendentemente dal fatto che quel indirizzo sia originale o da noi modificato in tabella prima di chiamare la INT. | |
In questi casi si parla di rilocazione di vettore, una tecnica molto ambita dai programmatori che veramente vogliono governare il proprio computer. |
|
Scheda n° 04 | La Tabella dei Vettori | |||||||
Scheda n° 04 - 2 |
|
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|