Segmentierung unter 80386



  • Guten Abend zusammen,

    hab jetzt mal ne saudumme Frage an euch:^^

    Wird der Deskriptortest (der GDT) beim 80386 auch durchgeführt, wenn ich
    keinen Segmentselektor verwende um eine Speicherstelle anzusprechen ?
    Also wenn ich als Beispiel nicht mov fs:[0], eax schreibe, sondern die Addressierung komplett als 32-Bit Adresse ohne Selektor angebe, z.B. so:
    mov 0xFFDFF000, eax ?

    Schon oder ? Bei mir kommen grad leichte Zweifel auf...
    Dann müsste der Prozessor doch die komplette GDT nach dem Deskriptor mit dem Adressbereich durchsuchen, in den die jeweilige Adresse fällt.
    Was passiert denn dann eigtl. wenn zwei Deskriptoren den gleichen Speicherbereich auf unterschiedliche Art und Weise freigeben ? Also wenn jetzt z.B. der erste Deskriptor ihn als Read/Write deklariert und der zweite ihn als Execute/Read ? Gilt dann sowohl Read/Write als auch Execute(/Read) ?

    Greetings, Xzi-bit



  • Jede inidrekte Adressierung wird über einen Selektor gemacht. Wenn Du keinen angibst, dann wird halt für das Register der Default-Selektor verwendet.

    Oder wie glaubst Du sollte sich sonst Virtueller-Speicher realisieren lassen, wenn plötzlich jeder Prozess adressieren könnte was er wollte?



  • Ah ok, danke Jochen. Jetzt habe ich's verstanden. 😛

    Greetings, Xzi-bit


Anmelden zum Antworten