Was bedeuten "reservierte" Bits genau?


  • Mod

    Es kam die Frage auf, ob "reservierte" Bits bedeutet, dass man diese nicht verändern darf, oder ob man diese auf Null setzen soll/muss.

    Hier Antworten bei osdev.org:
    http://forum.osdev.org/viewtopic.php?f=1&t=21100

    When you are reading a value, changing it and writing it back, then "reserved" means "don't touch". Otherwise it means "put zeros here".



  • Die Intel Manuals haben sogar einen Abschnitt der sagt, was man mit reservierten Bits machen soll. Und dort wird unter anderem gesagt, dass man die Bits mit den Werten laden soll, die in der Dokumentation stehen. (Intel Manual, Volume 3A, 1.3.2 Reserved Bits and Software Compatability) Daraus folgt, dass das nicht immer 0 ist.

    Beispiele für reservierte Bits, die mit 1 geladen werden, sind Teile der Debug Register (Intel Manual, Volume 3B, 18.2 Debug Registers), und bei der Sign-Extension der virtuellen Adressen im 64-Bit-Modus müssen die oberen 16 Bits mit dem Wert des 47sten Bits geladen werden. Wobei eigentlich die Bits selbst laut Manual nicht reserviert sind, sondern die Methode, wie diese Bits in physische Adressen umgerechnet werden. (Intel Manual, Volume 3A, 3.10 PAE-Enabled Paging in IA-32e Mode)


Log in to reply