Global Descriptor Table — Änderungen 4357 → 4359

Zeile 80: Zeile 80:
 
| 0    || 0x01 || Accessed bit    || Sollte 0 gesetzt werden, wird dann vom Prozessor bei Zugriff gesetzt.
 
| 0    || 0x01 || Accessed bit    || Sollte 0 gesetzt werden, wird dann vom Prozessor bei Zugriff gesetzt.
 
|}
 
|}
−
==== Beispielcode ====
+
 
−
char Set_Accessbyte(char enable, char privilege, char code, char read_write){
 
−
char Bitmaske = 0x00;
 
−
/** enable geht von 0 bis 1
 
−
0x01 ist in Bits 00000001b*/
 
−
if (enable = 1){
 
−
Bitmaske = (Bitmaske | 0x01);
 
−
}
 
−
/* privilege geht von 0 bis 3
 
−
0x02 ist in Bits 00000010b
 
−
0x04 ist in Bits 00000100b
 
−
0x06 ist in Bits 00000110b*/
 
−
if (privilege = 1) {
 
−
Bitmaske = (Bitmaske | 0x02);
 
−
}
 
−
else if (privilege = 2){
 
−
Bitmaske = (Bitmaske | 0x04);
 
−
}
 
−
else if(privilege = 3){
 
−
Bitmaske = (Bitmaske | 0x06);
 
−
}
 
−
Bitmaske = (Bitmaske | 0x08);
 
−
/* code 0 bis 1 */
 
−
if (code = 1){
 
−
Bitmaske = (Bitmaske | 0x0f);
 
−
}
 
−
/* read_write geht von 0 bis 1 */
 
−
if (read_write = 1){
 
−
Bitmaske = (Bitmaske | 0x40);
 
−
}
 
−
Return(Bitmaske);
 
−
}
 
−
<!-- Urheber Be59; COde ist unter BSD_Lizenz -->
 
 
=== Die Flags ===
 
=== Die Flags ===
 
{| {{Prettytable}}
 
{| {{Prettytable}}