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. == Aufbau einer 32-Bit-[[CPU]] == Die 32 Bit x86 Prozessoren verfügen über 4 je 32 Bit breite Mehrzweck-Register, wobei das 'E' jeweils für ''Extended'' steht: * EAX (engl.: Accumulator Register) wird in [[C]] für Rückgabewerte von Funktionen verwendet * EBX (engl.: Base Register) * ECX (engl.: Counter Register) meistens als Zähler verwendet * EDX (engl.: Data Register) Diese Mehrzweck-Register (engl.: General Purpose Registers) sind vielseitig verwendbar. Des Weiteren gibt es: * ESI (engl.: Source Index) zeigt bei Stringoperationen auf die Quelle * EDI (engl.: Destination Index) zeigt bei STringoperationen auf das Ziel * EBP (engl.: Base Pointer) Pointer auf den Start des Speichers für ein (Unter-) Programm * ESP (engl.: Stack Pointer) zeigt auf das aktuelle Element des Stacks, sollte nicht verändert werden wenn man nicht weiß was man tut Die Segment-Register: * DS (engl.: Data Segment) * CS (engl.: Code Segment) * SS (engl.: Stack Segment) * FS * GS * ES Zusätzliche Spezial-Register: * EIP (engl.: Instruction Pointer) zeigt auf den nächsten auszuführenden Befehl * EFLAGS (engl.: Flag Register) die einzelnen Bits haben unterschiedliche Bedeutung und werden für bedingte Sprungbefehle eingesetzt * 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, CR1, CR2 und CR3 (engl.: [[Control Register]]) werden im [[Protected Mode]] zum [[Paging]] benutzt * TR6 – TR7 (engl.: Test Register) zum Überprüfen des TLB (TR0-TR5 gibt es beim 80386 nicht) * DR0 – DR7 (engl.: Debug Register) zum Setzen von [[Breakpoints]] * TR (engl.: Task Register) Segment-Selektor des [[TSS]] == Links == * [http://de.wikipedia.org/wiki/X86 Wikipedia x86] [[Category:Hardware]]