Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: nooooooooos am 25. October 2005, 20:53
-
Das hier sind meine Fragen:
1.) Wie definiert man im PM einen Stack ?
2.) Und um wieviel muss ich den Selektor erhöhen, wenn ich den nächst höheren Deskriptor verwenden möchte ?
-
hi,
zu 1.)
fast so wie im RealMode: in SS den Selektor speichern, der auf das Stacksegment (oder das Datensegment) im Deskriptor zeigt und in ESP die Offset-Adresse des Stacks speichern
zu 2.)
immer um 8 !
Null-Deskriptor = 0,
1. Deskriptor = 8,
...
mfg,
stefan2005
-
immer um 8 erhöhen ist nicht ganz korrekt, das würde nur stimmen, wenn alle den selben Level besitzen.
man kann es ja einfach so machen: einfach deskriptor nummer nehmen, 3 bit nach links shiften und dann entsprechend die 3 niederen bits setzen
-
Aufbau Selektor:
-------------------
|15..................|3 |2.0|
| SELEKTOR |TI|CPL|
Wenn du nun zb. den ersten Deskriptor haben willst sieht die bitkombi fuer deinen selektor so aus: 0000000000001
Dazu kommt dann noch das TI-Bit und das Current-Priveleg-Level und damit siehts dann zb so aus: 0000000000001000
Wie du siehst ergibt sich hieraus dezimal sowie hexadezimal die acht. Ist etwas verwirrend da die deskriptoren meist acht byte lang sind.
-
Danke vielmals.
Gruss
Noooooooooos