Autor Thema: Wie ist ein GDT Eintrag WIRKLICH aufgebaut?  (Gelesen 2390 mal)

Martin Erhardt

  • Beiträge: 165
    • Profil anzeigen
Gespeichert
« am: 08. July 2012, 13:47 »
Moin,
So sieht ein GDT Eintrag nach dem Wiki aus
0    Limit    0-7
1    Limit    8-15
2    Base    0-7
3    Base    8-15
4    Base    16-23
5    Accessbyte    0-7 (vollständig)
6    Flags    0-3 (vollständig)
6    Limit    16-19
7    Base    24-31
Der Beispielfunktion set_entry() nach sähe sie aber so aus:
0    Limit    0-7
1    Limit    8-15
2    Base    0-7
3    Base    8-15
4    Base    16-23
5    Flags    0-7
6    Limit    16-19
6    Flags    0-3
7    Base    24-31
Nun Es wäre gut zu wissen was jetzt stimmt

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 08. July 2012, 15:43 »
Beides ist korrekt. Der einzige Unterschied ist in den Bezeichnern (Accessbyte vs. Flags) und dass in der Tabelle die Reihenfolge von Limit (16-19) und Flags (0-3) nicht eindeutig angegeben ist. Dafür ist da allerdings ein Bild drunter.

Im Zweifelsfall einfach das Intel oder AMD Manual befragen.
Dieser Text wird unter jedem Beitrag angezeigt.

Martin Erhardt

  • Beiträge: 165
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 08. July 2012, 18:05 »
Vielen dank, aber eine gewisse Unklarheit bestand durchaus: Laut wiki gehört das drittletzte Nibble zum segment limit aber laut der funktion das viert letzte. Aber ich glaube der set_entry Variante. Wenn die nicht stimmte, würde LOST nicht funktionieren

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 08. July 2012, 19:06 »
Ja wie gesagt, die Tabelle im Wiki ist nicht eindeutig. Die Tabelle macht keine Aussage darüber, welches Nibble das drittletzte oder viertletzte ist.

Das Problem ist ja, ob man das most-significant bit in einem Byte vorne oder hinten schreibt. Das machen die Leute durchaus unterschiedlich. Die einen orientieren sich an Zahlen und schreiben das MSB nach vorne, und die anderen orientieren sich an den Indizes der Bits, und schreiben das LSB als erstes. Und davon ist dann auch abhängig, ob man das niederwertige Nibble zuerst schreibt oder das höherwertige.
« Letzte Änderung: 08. July 2012, 19:11 von Jidder »
Dieser Text wird unter jedem Beitrag angezeigt.

 

Einloggen