ein selektor zeigt doch auf einem desktriptor. der desktriptor zeigt wiederum
auf den physischen segmentstart (also nicht virtuel wie bei selektor). außerdem is im
deskriptor die länge des segments gespeichert.
vollgendes beispiel ist von http://www.fh-zwickau.de/doc/prmo/pm...text/index.htm genommen worde:
...
Es soll ein Deskriptor angelegt werden, der ein Segment mit den folgenden Eigenschaften beschreibt:
Segmentstart an der physischen Adresse 01F2E3Dh
eine Länge von 2 MB (2097152d=200000h)
soll Datensegment sein (lesbar und beschreibar)
einen DPL von 2
aufgrund der Segmentlänge ein 80386 Segment ist
Assemblerquelltext:
mein_deskriptor:
dw 0200h ; Segmentgröße, Bit 0..15
dw 2E3Dh ; Segmentbasisadresse, Bit 0..15
db 1Fh ; Segmentbasisadresse, Bit 16..23
db 11010010b ; Zugriffsberechtigung und Typ
db 11000000b ; Zusatzinformation und Segmentgröße, Bit 16..19
db 0 ; Segmentbasisadresse, Bit 24..31
...
jetzt meine frage: vorher soll ich wissen, wieviel speicher ich zur verfügung habe? bei diesem bespiel ist die segmentengröße 2MB. Was ist wenn ich aber nur 1MB speicher zur verfügung habe?
genauso versehe ich es mit dem segmentstart nicht: woher soll ich wissen, ab wann ein segment anfangen kann, und ab wann nicht?
thx, eOs


Zitieren