Dockers DEV Site


Updates · Faq · Home 

Deskriptoren

Deskriptoren sind Strukturen, die bei dem 80386-Prozessor eine Länge von 8 Byte besitzen und sich "irgendwo" im Arbeitsspeicher befinden müssen. Sie beschreiben (daher auch der Name: Deskriptor; to describe, englisch, beschreiben) ein Segment im Speicher.

Ein Deskriptor hält dabei die folgenden Eigenschaften eines Segmentes fest:

Leider sieht ein 80386-Deskriptor nicht so "aufgeräumt" aus. Denn um die Kompatibilität zu 80286-Deskriptoren zu gewährleisten, mußten einige der oben genannten Eigenschaften auf mehrere, nicht zusammenhängende Byte verteilt werden.

Abb.2.3 zeigt einen 80386-Deskriptor in allgemeiner Darstellung (Zahlenangaben sind in Bit).

Deskriptor
Abb. 2.3: 80386-Deskriptor

Anmerkung: Das niederwertige (Low-)Byte eines Wortes befindet sich nach der Intel-Konvention an der NIEDRIGEREN Adresse!

Neben dem hier dargestellten Deskriptor, der Speichersegmente beschreibt, existieren zwei weitere Deskriptorarten. Dazu zählen Deskriptoren für System-Segmente und sogenannte Gates. Beide Deskriptorarten werden später betrachtet (siehe 2.4 Gates, Interrupts und Exceptions).

Wie sehen die Zusatzinformationen (Zugriffsrechte, Typ) eines Speichersegment-Deskriptors genau aus?

Diese Informationen werden in den Bytes 6 und 7 eines Deskriptors festgehalten. Diese beiden Bytes entsprechen dem High-Byte von Wort 3 (Byte 6) und dem Low-Byte von Wort 4 (Byte 7). Abbildung 2.4 zeigt den genauen Aufbau von Byte 6.

Zurgiffsinfomrationen
Abb. 2.4: Verschlüsselung der Zugriffsinformationen im Deskriptor-Byte 6

Das Type-Feld innerhalb des Deskriptors legt den Segmentyp und damit die mit dem Segment erlaubten Operationen fest. Die Operationen sind dabei in 3 Bit codiert (Vgl. Abb. 2.5).

Segmentyp
Abb. 2.5: Festlegung des Segmenttyps im Type-Feld des Deskriptors

Tabelle 2.1 gibt einen Überblick über die möglichen Segmentypen.

Nr. binär Typ Eigenschaften
0 000b Datensegment (schreibgeschützt) nur Lesen
1 001b Datensegment Lesen und Schreiben erlaubt
2 010b reserviert für zukünftige Erweiterungen
3 011b nach unter erweiterbares "expand down" Datensegment für Stacksegmente verwendbar
4 100b Codesegment nur ausführbar, nicht lesbar
5 101b Codesegment ausführbar und lesbar
6 110b "Conforming"-Codesegment nur ausführbar
7 111b "Conforming"-Codesegment ausführbar und lesbar
Tabelle 2.1: Segmenttypen

Weitere Informationen über das Segment befinden sich in den höherwertigen 4 Bit des Deskriptor-Bytes 7 (Vgl. Abb. 2.6)

Weitere Segmentinformationen
Abb. 2.6: Weitere Segmentinformationen

Index
weiter >>
<< zurück ||

Last change 27/11/2022 by Docker Rocker.
This page uses no cookies, no tracking - just HTML.
Author: "Docker Rocker" ~ 2022 · [Public Git]