Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier. 80386 ist Bestandteil der Typbezeichnung eines Mikroprozessors der Firma Intel . Dieser und dessen Nachfolger ( 80486 und Pentium I II III IV) werden heute häufigsten als CPU in PCs eingesetzt. 80386-Prozessoren wurden erstmals 1986 als Nachfolger des 80286ger ausgeliefert.
Die Funktionen des 80386 sind auch allen Nachfolgemodellen immer noch vorhanden. Die Register Prozessorfamilie sowie der Adressraum der Architektur sind 32 Bit breit.
Eine Spezialvariante war die SX-Version mit einer Busbandbreite von 32bit intern 16bit extern.
Der 80386 kann direkt bis zu GB Hauptspeicher adressieren (386SX: 16 MB). Er hat allgemeine 32-Bit-Register die zum Rechnen und allgemeinen verwendet werden:
Die "General Purpose"-Register des 80386
Abk.
Englischer Name
Verwendung
EAX
Accumulator
allgemein verwendbar spezielle Bedeutung bei Arithmetikbefehlen
EBX
Base Register
allgemein verwendbar
ECX
Count Register
allgemein verwendbar spezielle Bedeutung bei Schleifen
EDX
Data Register
allgemein verwendbar spezielle Bedeutung bei Multiplikation und
EBP
Base Pointer
Zeiger auf temporäre Speicherstellen im Stack (z.B. Stackframe für lokale Variablen etc.)
ESP
Stack Pointer
Zeiger auf die aktuelle Position im Stacksegment
ESI
Source Index
Quelle für Stringoperationen
EDI
Destination Index
Ziel für Stringoperationen
Daneben gibt auch noch weitere Register Steuerung des Verhalten der CPU:
Die Spezialregister des 80386
Abk.
Englischer Name
Verwendung
EIP
Instruction Pointer
Zeigt auf den nächsten auszuführenden Befehl. Wird Sprunganweisungen verändert.
EFLAGS
Flag Register
Die einzelnen Bits besitzen unterschiedliche Bedeutungen und z. B. Überläufe bei arithmetischen Operationen u.ä.
CS
Code Segment
Gibt die Position des Codesegmentes (in dem aktuell auszuführende Programmcode steht) an.
DS
Data Segment
Gibt die Position des Datensegmentes (in dem globalen Daten des Programms stehen) an.
SS
Stack Segment
Gibt die Position des Stacksegmentes (in dem Stack für die lokalen Daten und Rücksprungadressen an.
ES
Extra Segment
Gibt die Position eines weiteren Datensegmentes (wird für Stringkopierbefehle verwendet) an.
FS und GS
Extra Segment 2 und 3
Gibt die Position zweier weiterer Datensegmente an.
GDTR
Global Descriptor Table Register
Gibt die Position der GDT an
LDTR
Global Descriptor Table Register
Gibt die Position der LDT an
IDTR
Interrupt Descriptor Table Register
Gibt die Position der IDT an
CR0 - CR3
Control Register 0 ... 3
Steuern u.a. das Paging im Protected Mode
TR6 - TR7
Test Register 6 ... 7
..
DR0 - DR7
Debug Register 0 ... 7
Dienen zum festlegen von Breakpoints auf Prozessorebene u.a.