Der Intel 8086 ist ein 16-Bit-Mikroprozessor von Intel. Entwickelt 1978, wurde er zum Vorgänger der 80x86-Familie. Das Design basierte auf den Intel-CPUs 8080 und 8085, der Befehlssatz war so konzipiert, dass Assembler-Quellcode für den 8080/8085 leicht automatisch in gültigen 8086-Quellcode umgewandelt werden konnte. Wie dem 8080 fehlten dem 8086 einige wesentliche Bausteine wie Interrupt- und DMA-Controller, die als externe Chips dazukamen.
Der 8086 war eine der langsamsten 16-Bit-CPUs, die zu der Zeit auf den Markt kamen.
Eine Besonderheit war die Speichersegmentierung: Segmente waren Adressbereiche von je 64 KiB Größe, die in 16-Byte-Schritten im Speicher verschoben werden konnten. Auf diese Weise war es dem Chip möglich, bis zu ein MiB zu adressieren, wobei innerhalb jedes Segments mit 16-Bit-Adressen gearbeitet werden konnte. Vorteil war u.a. eine einfachere Portierbarkeit von 8-Bit-Programmen, Nachteil die umständliche Programmierung.
Wie sein 'kleiner Bruder' 8088, der wenig später auf den Markt kam, wurde der 8086 vor allem im IBM-PC und dessen Clones eingesetzt, aber auch z.B. im Space-Shuttle.
Technische Daten
- Strukturbreite: 3 µm
- Anzahl Transistoren: 29.000
- Taktfrequenzen: 4,77 MHz (0.33 MIPS), 8MHz (0.66 MIPS), 10MHz (0.75 MIPS)
- Adressraum: 1 MiB
- Bus-Breite: 16 Bit
- Befehle: ca. 100 im Format "[Präfix] Mnemonik [Operand 1][, Operand 2]" ([...] nicht immer nötig)
- 14 Register:
- 4 allgemeine 16-Bit-Register (ansprechbar auch als Low- oder High-Teil mit je 8 Bit):
- AX - Akkumulator
- BX - Basis-Register
- CX - Count-Register
- DX - Daten-Register
- 2 16-Bit Pointer Register:
- SP - Stackpointer
- BP - Basepointer
- 2 16-Bit Index-Register:
- SI - Sourceindex
- DI - Destinationindex
- 4 16-Bit Segment-Register:
- CS - Codesegment
- DS - Datensegment
- SS - Stacksegment
- ES - Extrasegment
- Befehlszeiger IP - Instruction-Pointer
- Status-Register mit 9 Flags:
- CF - Übertragflag (engl. carry flag)
- PF - Paritätsflag (engl. parity flag)
- AF - Hilfsübertragflag (engl. auxiliary carry flag)
- ZF - Nullflag (engl. zero flag)
- SF - Vorzeichenflag (engl. sign flag)
- TF - Einzelschrittflag (engl. trap flag)
- IF - Interrupt-Aktivierungs-Flag (engl. interrupt enable flag)
- DF - Richtungsflag (engl. direction flag)
- 4 allgemeine 16-Bit-Register (ansprechbar auch als Low- oder High-Teil mit je 8 Bit):