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

Capitolo 1

Home » Programma il Computer » Tutorial Assembly

Capitolo 1 - Il processore - Il Debugger

  Il Processore e il Debugger

LA GRANDE LIBRERIA 5/9 [56 di 60] 

    

    Perchè serve la Tabella dei Vettori?
     
bulletRimane da capire perchè i progettisti dell'80x86 hanno voluto ricorrere a questo complicato meccanismo, per poter rendere disponibili le risorse di sistema.
bulletLa prima risposta è funzionale: al programmatore non serve ricordare l'improbabile, grosso (4 bytes...), numero esadecimale associato all'indirizzo logico della procedura di cui ha bisogno, e non gli importa neppure sapere in quale tipo di memoria (rom se legata al bios o ram se proveniente da SysOp o da drivers) sarà pescata..
bulletPer esempio se abbiamo bisogno delle procedure che controllano il video chiameremo INT 10H, e il servizio sarà garantito indipendentemente dal punto della memoria in cui il processore si troverà a lavorare; questo esempio è particolarmente significativo perchè sottolinea un'altra potente caratteristica della Tabella dei Vettori: la rilocabilità del servizio.

      

bulletIn pratica la procedura di Boot è a conoscenza della zona BIOS in cui il servizio è garantito d'ufficio (è impensabile che il costruttore non abbia previsto gli strumenti necessari per scrivere messaggi a video..) e, non appena l'ha localizzata, ne trasferisce l'effettivo indirizzo in Tabella; ma quando il Sistema Operativo (che le subentra) si accorge della presenza di una moderna scheda video, sul bus AGP o PCI, provvederà ad installarne il driver in memoria e a metterlo in esecuzione.
bulletLa presenza attiva del nuovo driver video renderà disponibile una propria procedura, ovviamente alternativa a quella di default e allocata in indirizzi propri della scheda video; per renderla disponibile a chiunque ne abbia bisogno, il driver stesso andrà a sostituire il vettore originale di default con quello nuovo di zecca, relativo alla memoria rom presente sulla scheda SVGA.

      

Suggerimento Dunque: l'uso di numeri a 8 bit (da 00H a FFH) virtualizza l'accesso alle possibili procedure di sistema (i libri della grande libreria), cioè ne consente l'uso anche senza la necessità di conoscerne l'effettivo indirizzo.

      

bulletMa il vero problema è un altro!  Come è facile pensare, la quantità di codice macchina necessario per sviluppare un determinato servizio può subire, con il passare del tempo, una prevedibile dilatazione dovuta per esempio all’evoluzione tecnologica; si pensi emblematicamente alle modifiche subite dalla procedura che si occupa degli Hard Disk, chiamata molti anni fa a gestire memorie di massa da 20-40 MBytes e ora orientata al servizio di HD con capacità superiore ai 100 GBytes!!
bulletDopo ogni modifica, se possiamo ritenere che il puntatore (Vettore) a questa procedura sia rimasto inalterato, dobbiamo renderci conto che l'aumento del suo numero di istruzioni ha spostato inevitabilmente verso il basso gli indirizzi iniziali di ciascun'altra procedura di servizio successiva.
bulletTutti si incrementano di un numero pari a quello dei bytes aggiunti alla prima; tutti i Vettori di queste procedure dovranno essere cambiati!

      

bulletPoichè gli aggiornamenti del BIOS (ma anche quelli di un Sistema Operativo) sono imprevedibili e molto frequenti, l'indirizzo fisico (puntatore, Vettore) effettivo di ciascun libro può subire variazioni in ogni momento; per non parlare dei possibili diversi produttori di BIOS e di schede madri, ciascuno dei quali sarà chiamato a garantire il servizio a partire dagli oggetti da lui prodotti, inevitabilmente diversi da quelli della concorrenza...

      

Suggerimento L'accesso alle procedure di sistema (i libri della grande libreria), non può assolutamente essere eseguito saltando direttamente al rispettivo indirizzo: esso non è per nulla stabile nel tempo e la sua precarietà renderebbe inaccessibile la risorsa.

      

bulletL'uso della Tabella dei Vettori risolve per sempre questo problema: la risorsa desiderata si ottiene (tramite INT xyH) specificandone il numero , assolutamente stabile e riconosciuto da tutto l'ambiente (produttori e programmatori).
bulletSarà compito del produttore del BIOS (o del sistema operativo, o del driver) scrivere in tabella i giusti indirizzi delle procedure di sistema, probabilmente diversi da quelli della versione precedente, ma sicuramente associati agli stessi numeri esadecimali xyH.

      

bulletPer la descrizione dettagliata del contenuto e dei segreti della Tabella dei Vettori si rimanda all'apposita scheda; uno dei primi programmi che realizzeremo, non appena avremo sufficiente autonomia, sarà proprio Tabella.ASM, con il quale cercheremo di visualizzare il contenuto di questa preziosa area di memoria di sistema.
bulletSe lo desideri puoi comunque levarti fin d'ora questa curiosità scaricando qui e provando la versione offerta dell'Autore, Tabvett.COM.

    

Pagina Precedente Capitolo 1 Pagina Successiva LA GRANDE LIBRERIA 5/9   Torna alla Home  del Capitolo1 del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
56 di 60
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

    

CAP. 1 » 1. Processore 80x86 2. Istruzioni 80x86  3. Debug  4. La Grande Libreria
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