Die Interrupt Vector Table (kurz IVT) befindet sich im ersten Kilobyte des Arbeitsspeichers (siehe [[Speicherbereiche]]). Ihre Aufgabe besteht darin, die Adresse der [[ISR | Interrupt Service Routine]] für jeden [[Interrupt]] bereitzustellen. Die IVT hat nur im [[real mode]] Bedeutung und wird im [[protected mode]] durch die [[IDT]] abgelöst. == Aufbau == Insgesamt stehen 256 Interrupts zur Verfügung, deshalb muss die IVT auch 256 Einträge (einen für jeden Interrupt) haben. Ein Eintrag ist 4 Byte groß und enthält eine Realmodeadresse, die aus 2 Byte Segment und 2 Byte Offset besteht. Ein Eintrag sieht im Speicher folgendermaßen aus: Byte +---------------+---------------+ 0 | Offset | +---------------+---------------+ +---------------+---------------+ 2 | Segment | +---------------+---------------+ Die IVT belegt somit genau 256 * 4 = 1024 Byte. Die genaue Verwendung dieser Einträge bei Auftreten eines Interrupts wird im Artikel [[Interrupt]] erklärt. == Während des Bootvorgangs == Nach dem Start des Computers wird die IVT automatisch vom [[BIOS]] erstellt und die Adressen zeigen auf Funktionen, die entweder das BIOS einem Betriebssystem zur Verfügung stellt oder die benötigt werden, um mit der Hardware zu kommunizieren. Nach dem [[Bootvorgang]] kann es für ein Betriebssystem sinnvoll sein einige Interrupts durch eigene Funktionen behandeln zu lassen. Dazu zählt vor allem die Exceptions. == Beispiel == Beispielsweise will man wahrscheinlich eine "Division durch 0" (Interrupt 0) anders als das BIOS behandeln (z.B. den momentanen Prozess beenden und zur Shell zurückkehren):
xor ax, ax mov es, ax ;cli ; IRQs deaktivieren: Dies ist nur notwendig, wenn man einen Eintrag für einen IRQ verändert mov WORD [es:0], __int0x00 ; Offset: Die Adresse unserer Interrupt Service Routine mov WORD [es:0+2], cs ; Segment: Wir geben hier das momentane Codesegment an ;sti ; IRQs aktivieren== Links == * [http://www.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/WWW/files.html Ralf Brown's Interrupt List] (Download) * [http://www.ctyme.com/intr/int.htm Ralf Brown's Interrupt List] (online anschaubar) [[Category:Glossar]]