X86
Aus Lowlevel
| Diese Seite oder Abschnitt ist zwar komplett, es wird aber folgende Verbesserungen gewünscht:
Hilf Lowlevel, den Artikel zu verbessern. |
Die x86-Architektur galt lange Zeit als quasi Standard für so gut wie alle Prozessoren. Sie wurde von Intel ins Leben gerufen und nach den Prozessoren der Baureihe 8086/8088 benannt. Der wirkliche Durchbruch begann allerdings erst mit dem ersten 32 Bit Prozessor, dem 80386, oder auch kurz 386 genannt. Der grundlegende Prozessoraufbau ist seitdem gleichgeblieben, alle neueren Prozessoren sind seitdem abwärtskompatibel zum 386 bzw 486. Intel selbst nennt diese Architektur heute IA-32 (Intel Architecture with 32 Bit). In absehbarer Zukunft wird der x86 Standard aber wohl durch den x64-Standard ersetzt werden.
Inhaltsverzeichnis |
CPU
Register
Übersicht
| Bits | Register |
|---|---|
| 8 | AL, BL, CL, DL, AH, BH, CH, DH |
| 16 | AX, BX, CX, DX, DI, SI, BP, SP, CS, DS, ES, FS, GS, SS |
| 32 | EAX, EBX, ECX, EDX, EDI, ESI, EBP, ESP, EIP, EFLAGS |
| 128 | XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7 |
Allzweckregister
| Die Allzweckregister können, wie ihr Name schon andeutet eigentlich für fast jeden Zweck genutzt werden. Trotzdem gibt es einige gebräuchliche Nutzungen:
| ||||||||||||||||||||||||
Indexregister
| Die Indexregister werden oft als Indexe in Datenbereichen (va. bei den eingebauten Stringoperationen) verwendet. Dabei zeigt
| ||||||||||||||||||||
Zeigerregister
| Die Zeigerregister werden genutzt, um auf Stellen im Speicher zu zeigen.
| ||||||||||||||||||||
Instruktionsregister
| Das Instruktionsregister EIP (engl.: Instruction Pointer) zeigt immer auf den nächsten auszuführenden Befehl. Es kann nicht direkt geändert werden, sondern nur über Instruktionen wie jmp, call oder ret | ||||||||||||||||
Flagregister
→ Hauptartikel: EFLAGS
| Das Flagregister EFLAGS speichert einige Konfigurationsmöglichkeiten und Systemzuständen, beispielsweise, ob Interrupts gerade erlaubt sind oder ob ein Übertrag bei einer Addition stattfand. | ||||||||||||
Segmentregister
| Die Segmentregister geben die Basisadresse des aktuellen Segments an. Dabei steht
FS und GS sind zusätzliche Daten-Segmente. | ||||||||
Die Segmentregister sind im Protected Mode auch für die Segmentierung mit Hilfe der GDT verantwortlich.
Zusätzliche Spezialregister
- GDTR (engl.: Global Descriptor Table Register) gibt die Position der GDT an
- LDTR (engl.: Local Descriptor Table Register) gibt die Position der LDT an
- IDTR (engl.: Interrupt Descriptor Table Register) gibt die Position der IDT an
- CR0, CR2, CR3 und CR4 (engl.: Control Register) werden im Protected Mode zum Paging benutzt
- TR6 – TR7 (engl.: Test Register) zum Überprüfen des Translation Lookaside Buffers (TR0-TR5 gibt es beim 80386 nicht)
- DR0 – DR7 (engl.: Debug Register) zum Setzen von Breakpoints
- TR (engl.: Task Register) Segment-Selektor des TSS
- MSRs (engl.: Machine-Specific Register)
Erkennen der CPU
Mit dem Befehl CPUID kann man beispielsweise die von der CPU unterstützten Features oder Daten wie den Hersteller der CPU auslesen.
sonstige Hardware
| Diese Seite oder Abschnitt ist zwar komplett, es wird aber folgende Verbesserungen gewünscht: Andere zur Platform gehörende Hardware auflisten mit Links zu den entsprechenden Artikeln Hilf Lowlevel, den Artikel zu verbessern. |

