Long Mode — Änderungen 3099 → 4462

Zeile 1: Zeile 1:
−
Der Long Mode ist ein CPU-Modus neuerer CPUs, in dem erstmals 64bit-Allzweckregister zur Verfügung stehen. Wie auch bem [[Protected Mode]] starten Prozessoren, die diesen Modus unterstützen, aus Kompatibilitätsgründen zunächst im [[Real Mode]] mit deaktiviertem [[A20-Gate]].
+
Der Long Mode ist ein CPU-Modus neuerer CPUs, in dem erstmals 64bit-Allzweckregister zur Verfügung stehen. Wie auch beim [[Protected Mode]] starten Prozessoren, die diesen Modus unterstützen, aus Kompatibilitätsgründen zunächst im [[Real Mode]] mit deaktiviertem [[A20-Gate]].
  
 
==Eigenschaften==
 
==Eigenschaften==
Zeile 7: Zeile 7:
  
 
==Wie überprüfe ich, ob die CPU den Long Mode unterstützt?==
 
==Wie überprüfe ich, ob die CPU den Long Mode unterstützt?==
−
CPUs, die den Long Mode unterstützen, setzen bei einem Aufruf der [[CPUID]]-Operation mit EAX=0x80000001 das LongMode-Capabale-Bit(bit29) im EDX register auf 1.
+
CPUs, die den Long Mode unterstützen, setzen bei einem Aufruf der [[CPUID]]-Operation mit EAX=0x80000001 das LongMode-Capable-Bit (Bit 29) im EDX-Register auf 1.
  
 
==Wie schalte ich den Long Mode um?==
 
==Wie schalte ich den Long Mode um?==
−
Um in den Long Mode umschalten zu können muss erst einmal der [[Protected Mode]] aktiviert werden. Eine weitere Voraussetzung ist es, dass das ''Physical Address Extension''-Bit (bit5) im CR4 gesetzt und Pageing deaktiviert ist. Jetzt kann der Long Mode mit dem Setzen des LME-Bit(bit8) im MSR-0xC00000080 aktiviert werden. Im eigentlichen Long Mode befindet man sich aber erst, wenn man in ein 64bit-Codesegment wechselt, das im Vergleich zu den 32bit-Codesegmenten in seinem Descriptor das L-Bit(bit21) im 2. DWord gesetzt hat.
+
Um in den Long Mode umschalten zu können, muss erst einmal der [[Protected Mode]] aktiviert werden. Eine weitere Voraussetzung ist es, dass das ''Physical Address Extension''-Bit (Bit 5) im CR4 gesetzt und Paging deaktiviert ist. Jetzt kann der Long Mode mit dem Setzen des LME-Bits (Bit 8) im MSR 0xC00000080 aktiviert werden. Im eigentlichen Long Mode befindet man sich aber erst, wenn man in ein 64-Bit-Code-Segment wechselt, das im Vergleich zu den 32-Bit-Code-Segmenten in seinem Descriptor das L-Bit (Bit 21) im 2. DWord gesetzt hat.
  
 
==Links==
 
==Links==
 
*http://www.osdev.org/wiki/X86-64
 
*http://www.osdev.org/wiki/X86-64
 
*http://www.sandpile.org/aa64/index.htm
 
*http://www.sandpile.org/aa64/index.htm