Interrupt in X86

martinez89
L'interrupt type n.25h dove ha l'indirizzo della Routine di Risposta all'Interrupt?

Risposte
dzcosimo
suppongo alla locazione 25 della tabella IDT puntata dal contenuto IDTR

martinez89
In teoria la risposta che mi da il pdf sul quale studio (raccolta di domande del mio docente) è: All’indirizzo 00094h
Però non so il perchè?

dzcosimo
hem, mi permetto di dissentire
o meglio di fare una precisazione
la interrupt vector table o IDT che dir si voglia PUO' partire da 0X0..0 (ansi così accade di solito) ma non è detto
l'indirizzo di partenza è contenuto nel registro IDTR e il microprogramma di interruzione per andare a trovare l'indirizzo dove è piazzata la routine farà
contenuto_di_IDTR+tipo*4
ovviamente tutto eventualmente convertito in esa
nel caso in cui IDTR contenga una stringa di zeri il tutto si riconduce a quanto dicevi tu sergio

inoltre non è che mi torni tanto quel *4...
per quel che mi ricordo i gate sono fatti così

_____________________________________________________________
|indirizzo routine(4 byte) |
|____________________________________________________________|
|byte di accesso|alcuni byte non significativi | ID nel caso di gate di tipo task|
|____________|______________________|_________________________|

per un totale quindi di 8 byte
quindi sarebbe:
contenuto_di_IDTR+tipo*8

dzcosimo
beh infatti lui non ha specificato il modello dell'architettura x86, potrebbe essere anche un successivo
so quasi per certo che i modelli con architettura x86 con indirizzamento a 32 bit(visto che te supponi che l'indirizzo debba stare su 4 byte stiamo parlando di un processore del genere) posseggano un registro IDTR... te cosa ne pensi?

più che altro è il fatto che i gate in genere sono a 8 byte che non mi fa tornare l'esercizio

certo che se come dici te stiamo parlando dell'8086 che mi pare abbia indirizzamento a 16 bit sarebbero più che sufficienti 4 byte per byte d'accesso e indirizzo del gate
dell'ID non ci sarebbe bisogno perchè(e qua ci sta proprio che mi sbagli) quei processori non venivano utilizzati su sistemi multiprogrammati

martinez89
Mi riferivo all'8086....grazie ragazzi...ne sapete veramente tanto in materia....

martinez89
Ne approffitto per chiedervi un'ultimissima cosa su questo tipologie di esercizi:
La RRI dell'interruzione con interrupt type=34h è allocata in memoria all'indirizzo CS:IP F030:B002.
L'indirizzo corrente nel momento in cui arriva l'interruzione è CS:IP A0B0:F020. Il registro di Flag contiene
0F00 (tutto esadecimale). Cosa c’è scritto nell'interrupt vector?

martinez89
Ne approffitto per chiedervi un'ultimissima cosa su questo tipologie di esercizi:
La RRI dell'interruzione con interrupt type=34h è allocata in memoria all'indirizzo CS:IP F030:B002.
L'indirizzo corrente nel momento in cui arriva l'interruzione è CS:IP A0B0:F020. Il registro di Flag contiene
0F00 (tutto esadecimale). Cosa c’è scritto nell'interrupt vector?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.