Autor Thema: stack segment deskriptor  (Gelesen 5724 mal)

sancho1980

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« am: 01. February 2008, 15:31 »
hallo

ich will einen segment deskriptor fuer ein stack segment schreiben
das segment soll von 0x100000 bis 0x110000 gehen. irgendwas scheine ich falsch zu verstehen. ich bin bei folgendem deskriptor angelangt, aber ich bekomme fehler:

   dw fff0h   ;limit of the segment
   dw 0      ;base address of segment
   db 11h      ;still belonging to base address of segment
   db 10010010b   ;1 for "segment is present"
         ;00 for "privilege 0"
         ;1 for "data or code segment"
         ;0 for "data segment"
         ;0 for "expand downward"
         ;1 for writable
         ;0 (access flag set by cpu on 1st access)
   db 11001111b   ;1 for page-granularity
         ;1 for 32-bit stack pointer
         ;0 (reserved bit)
         ;0 (available to system programmers)
         ;1111b for last bits of segment limit
   db 0      ;last byte of base address

MNemo

  • Beiträge: 547
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 01. February 2008, 15:49 »
[...] ich bekomme fehler

eine etwas genauere Fehlerbeschreibung wäre schon relativ nützlich
„Wichtig ist nicht, besser zu sein als alle anderen. Wichtig ist, besser zu sein als du gestern warst!“

sancho1980

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 01. February 2008, 15:58 »
naja, ich kann dir grad die fehlermeldung nicht posten, weil ich auf arbeit bin..die frage war ja auch eher so gemeint:

angenommen du wuerdest ein segment dekriptor fuer einen stack schreiben wollen, der jetz also von 0x100000 bis 0x110000 geht, wie wuerde dieser aussehen..ich muesste das irgendwie mal am beispiel sehen, wie das mit den expand-down segmenten gemeint ist. auch bin ich mir nicht sicher, ob jetzt in die basis-adresse das ende oder der anfang des stack-segmentes soll...

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 01. February 2008, 17:08 »
Hmm...Ich habe keine Erfahrung mit Expand-Down segmenten...Aber die ist auch nicht unbedingt nötig...Du kannst auch einfach ein Daten-Segment machen und den Stack dadrauf setzen...Geht auch prima...

Zudem haben viele hier einfach nur ein Code- und Datensegment pro Ring und diese dann einfach von 0-0xFFFFFFFF eingestellt...Das ist einfacher und hat eigentlich keine Nachteile...Wenn du dannach nämlich Paging verwendest(wie die meisten OS) kannst du einfach jedem Task die Speicherteile geben, die du willst...
Ich denke mal Paging ist weniger kompliziert als diese ganze Segment-Geschichte und hat noch zusätzliche Vorteile...


Gruss
Noooooooooos

sancho1980

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 01. February 2008, 18:20 »
hmmm

und hat sonst irgendwer erfahrung mit expand down segmenten?

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #5 am: 03. February 2008, 14:34 »
hier gehts weiter.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

 

Einloggen