title image


Smiley Segmente im Protected Mode (Achtung viele Bilder)
im Protected Mode gibt es auch Segmente. Diese sind aberein Index in verschiedene Tabellen.(1) Globale Deskriptor Tabelle (GDT), einmalig, immer verfügbar.(2) Lokale Deskriptor Tabelle (LDT), gewöhnlich eine pro Task (0..x), aber immer nur eine aktiv.(3) Interrupt Deskriptor Tabelle (IDT), wird benutzt bei auslösen eines Interrups.Jede Tabelle besteht aus einer variablen Anzahl vonDeskriptoren und einer 8 Byte Datenstruktur, die dieSpeicheregion beschreibt; Struktur:Die Segmente sind also Selektoren (Index) in eine Tabelle.Ein Deskriptor hat folgende Struktur:Alle Speicher zugriffe finden nur noch mit den Offsetsstatt, die Berechnung der linearen Adresse ist nichtgerade trivial...Interrupts werden durch eine Trap Schnittstelle geleitet.ungefähr so...Jetzt habe ich zwar überhaupt noch nichts über Paging erzählt (großer Sprung) letztendlich sieht es dann so aus:So und das alles wird Dir nicht viel helfen, da Du einfachweiterhin den INT -Befehl beutzen mußt. Doch solltest immerim Augen behalten, das man vorher alle Register sicher mußund wiederherstellen. Ich habe noch nie in einem 'normalen'Programm und schon garnicht unter einer Hochsprache einenInterrupt benutzt bzw überhaupt gebraucht.Deshalb kann ich Dir auch keinen Quellcode geben, doch kannich Dir wenigstens sagen, daß...procedure AccessVioline(); assembler;asm mov eax, $00013; int $10;end;Eine schöne Zugriffverletzung im Kernel verursacht...Gruß NicoschPS: vielleicht hilft es Dir zum Verständnis, hm.

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: