|
 |
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:
 | l'area di memoria necessaria è proprio di
1024 bytes (1k),
256*4. |
 | ciascun vettore sarà allocato in tabella ad indirizzi
multipli di 4 (es: 00000H,
00004H, 00008H,
0000CH, ....). |
 | la locazione che ospita ciascun vettore è facilmente
calcolabile moltiplicando per 4 il suo numero corrente (es: il vettore
10H è ospitato a partire da 00040H. |
 | i 4 bytes associati a ciascun vettore sono memorizzati in
tabella con la consueta logica Lo-Hi;
per esempio la lettura dei bytes associati al vettore
10H darebbe l'indirizzo
C31C:198A se in tabella ci fosse: |
|
Vettore in Tabella |
byte |
significato |
|
0000:0040
|
8A |
low Offest |
|
0000:0041
|
19 |
high Offest |
|
0000:0042 |
1C |
low Segment |
|
0000:0043
|
C3 |
high Segment |
|
 | 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. |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|