View Full Version : Bios e modalità protetta
Salve ragazzi,
qualcuno mi può spiegare come mai gli interrupts del Bios non si possono utilizzare in modalità protetta?
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.
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.
Grazie per la risposta, pero' ti chiedo un chiarimento: in modalità protetta, cambia proprio la IDT o cambia il modo di invocare gli interrupts? Oppure tutti e due ? :)
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...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.