|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6636
|
Bios e modalità protetta
Salve ragazzi,
qualcuno mi può spiegare come mai gli interrupts del Bios non si possono utilizzare in modalità protetta? |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
primo perché si tratta di codice per la modalità reale, che non è un sottinsieme perché la segmentazione è fatta in maniera completamente diversa; secondo perché le chiamate bios sono interrupt, e la IDT in modalità protetta è molto diversa da quella in modalità reale; se proprio vuoi chiamare una routine del bios dovresti andare a cercarla nella vecchia IDT. magari il codice del bios lo potresti eseguire in un task in modalità virtuale x86.
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6636
|
Quote:
|
|
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
La IDT vecchia era se ben ricordo un semplice array di interi situato alla locazione fisica 0, mentre adesso si tratta di un array di segment selectors che puntano ai rispettivi segment descriptors i quali a loro volta puntano ai segmenti contenenti le rispettive ISR (Interrupt Service Routines); inoltre questo array oltre ad avere un formato completamente diverso non è situato alla locazione fisica 0, bensì all'indirizzo lineare indicato nel registro IDTR.
Il modo di invocare le interrupt cambia, ma solo dal punto di vista dell'implementazione hardware; per un programmatore l'istruzione INT è sempre la stessa, sia a 16 bit che a 32, e lo stesso dicasi per IRET. Forse c'è giusto qualche differenza per le istruzioni INT 3 e INTO, ma non so bene... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:51.



















