|<< Intel 8086 >>|
|Production:||1978 to 1990s|
|Processor clock:||5 MHz to 10 MHz|
|Manufacturing :||3 µm, NMOS or enhanced NMOS|
|Instruction set :||x86 (16 bit)|
The Intel 8086 is a 16-bit - microprocessor from Intel . Developed in 1978, it became the forefather of the 80x86 family . The design was based on Intel's 8-bit CPUs 8080 and 8085 , the instruction set was designed to Assembler - source code could be easily converted automatically for the 8080/8085 in 8086 valid source code. However, there was no direct compatibility , i.e. the possibility of running the 8080 programs without re-assembling. Like the 8080, the 8086 was missing some essential components such as interrupt and DMA controllers, which were added as external chips. The no 8086 supports floating point operations, but can innately with an Intel 8087 - coprocessor cooperate, then the floating point calculations performs. The Intel 8089 coprocessor offers extended I / O functions and serves, among other things, as a DMA controller . Version 8088 appeared later with the external command and data bus reduced to 8 bits.
The memory segmentation is a special feature . With a 16-bit address register it is only possible to address a maximum of 64 KiB memory. In order to be able to address more possible memory, Intel gave the processor 20 address lines for 2 20 addresses (max. 1 MiB main memory ). Two registers are used to store an address: a segment register and an offset register. The processor automatically calculates the address of a physical memory location by taking the segment address × 16 and adding the offset address. This results in 65,536 address areas (segments) offset by 16 bytes, each 64 KiB in size. In this way, the chip can address 1 MiB, and 16-bit addresses can be used within each segment. Since there are only 20 address lines, the lowest 64 KiB (-16 bytes) appear again "mirrored" at the upper end of the address space (as there is an overflow in the address calculation ).
For example, if the segment register contains the address 1234 hex and the offset register contains the address 5678 hex , which is usually written as 1234: 5678 , then the memory is set to the address 1234 hex × 10 hex + 5678 hex = 12340 hex + 5678 hex = 179B8 hex accessed.
The advantage of memory segmentation is, among other things, easier portability of programs that only work with 16-bit addresses and a higher code density , disadvantage is the laborious programming and the limitation to one mebibyte; other 16-bit architectures usually allowed an address space of at least 16 MB. However, at the end of the 1970s, 1 MB was much more for a microcomputer than was needed or actually built in memory, also because of the high prices for RAM (the IBM PC , for example, initially only had a maximum of 64 KiB of memory, depending on the variant, home computers from the same time usually significantly less).
Compared to other 16-bit processors, the 8086 only has a small number of registers. Often only one specific register can be used for many operations - the 8086 is thus an extended accumulator calculator , as general-purpose registers there are usually only four available. An often used function that is permanently assigned to a register is (integer) multiplication: The multiplicand must be stored in register AX and then the multiplication command with the multiplier as an argument is called. The result is then obtained in registers DX and AX. This fixed register link often forces you to save values on the stack or in the main memory and to load them from there, since the processor commands often specify which registers can be used for the intermediate values. Other 16-bit processors, on the other hand, allow you to select the general-purpose register to be used for each operation and thus to save intermediate results on the stack and in the main memory less often ( register machine ); these architectures mostly had 16 or more registers, while the 8086 (minus the segment registers mentioned) only supported four semi-general and four more specialized registers. This is a problem insofar as access to the main memory is very slow compared to register access.
The 8086 inherited this register concept on its successor 80286 and on all later processors belonging to the so-called x86 family , but the number of registers in the new x64 mode of the current processors has been doubled, and the registers of the current x86 Generation 64 bit "wide".
The 8086 (and also the 8088) can be operated in a minimum and a maximum mode . The selection is made via the MN / MX pin 33. If it is switched to 0 V (low), the 8086/88 works in maximum mode, at +5 V (high) in minimum mode. Compact, simple circuits can be realized in the minimized mode; the processor itself provides the necessary control lines. The maximum mode is primarily intended for multiprocessor operation or for working with the 8087 and 8089 coprocessors .
The 8086 does not have an internal oscillator . The required clock is therefore generated externally by the 8284 oscillator chip . If the processor is operated in maximum mode - which is usually the case - the required control lines WR , M / IO , DT / R , DEN , ALE and INTA are not made available, but must be made available by the 8288 bus controller . If the processor is part of a multiprocessor system, the 8289 bus arbiter is also required. A latch , for example the 8282, is also required to separate the addresses from the multiplexed address / data bus . For sufficient control of the entire bus system as well as in multiprocessor operation, bidirectional drivers are required , for example the 8286 .
The compatible, but somewhat slower 8088 with 8-bit data bus width , which came onto the market a little later, was mainly used in the IBM PC and its replicas . However, some manufacturers also used the 8086, including Olivetti in the M24 model. The processor was most widespread in the PC-Clone PC1512 and PC1640, which were successfully sold by the English computer manufacturer Amstrad . In Germany, these computers were marketed under their own name by the Schneider Computer Division . The NASA searched again the remainders market to 8086, by guiding the shuttle program after a certain, already long no longer in production at that time special version. This version of the 8086 is particularly insensitive to electromagnetic radiation and was used not only by the military, but also by manufacturers of medical devices.
- Address bus: 20 bit, byte-oriented (identical to 8088)
- Max. Addressable memory: 1 Mbyte
- internal and external data bus: 16 bits, addressable byte by byte (8088: external only 8 bits wide)
- Processing width : 16 bits
- Commands: approx. 100
- 14 registers :
- four general 16-bit registers, also addressable as low or high part of 8-bit each:
AX: accumulator, BX: base register, CX: count register, DX: data register
- two 16-bit pointer registers:
SP: stack pointer, BP: base pointer
- two 16-bit index registers:
SI: Source Index, DI: Destination Index
- four 16-bit segment registers:
CS: code segment , DS: data segment , SS: stack segment, ES: extra segment
- 16-bit instruction pointer:
IP: Instruction Pointer
- 16-bit status register with 9 flags :
CF: carry flag (Engl. Carry flag )
: PF parity flag (Engl. Parity flag ),
AF: Hilfsübertragsflag (Engl. Auxiliary carry flag ),
ZF: zero flag . (English zero flag ),
SF: Sign flag ,
TF: Single step flag (English trap flag ),
IF: Interrupt activation flag (English Interrupt enable flag ),
DF: Direction flag (English direction flag ),
OF: Overflow flag ( overflow flag )
- four general 16-bit registers, also addressable as low or high part of 8-bit each:
- L1 cache: does not exist
- L2 cache: nonexistent
- Number of transistors: 29,000
- Design: DIL with 40 pins
- Operating voltage (VCore): +5 V
- Release DATE: 1978
- Manufacturing technology: 3 µm
- Die size : 33 mm 2 with 29,000 transistors
- Clock rates:
- 8086: 4.77 MHz (0.33 MIPS )
- 8086-2: 8 MHz (0.66 MIPS)
- 8086-1: 10 MHz (0.75 MIPS)
Except pin- and functionally identical replicas (especially in CMOS manufactured technology NEC V20 and V30 ), "stripped-down" version 8088 and the more favorable were like the competing products for the IBM PC Motorola 68000 used processor, rarely the Zilog Z8000 , rare the National Semiconductor NS16032 . (However, both the Motorola 68000 and NS16032 are 32-bit processors.)
- Intel 8282 / 8283 : 8-bit latch
- Intel 8284 : Clock
- Intel 8286 / 8287 : 8-bit bidirectional driver
- Intel 8288 : bus controller
- Intel 8289 : Bus Arbiter
Literature / data sheets
- Intel: The 8086 Family User's Manual (PDF; 9.7 MB), October 1979
- Josef Koller: 16 Bit Microcomputer , 1st edition, Hofacker Verlag, Munich 1981, ISBN 3-921682-80-0 .
- NEC Electronics (Europe) GmbH, 1982 Catalog, pp. 435-446.
- Data sheet Intel 8086 (PDF file; 380 kB)
- Data sheet Intel 80C86 (PDF file; 277 kB)
- Intel 8086 - Collectors website with lots of pictures
- PC hardware book - structure, functionality, programming; Chapter 3 (8086) (PDF; 4.9 MB)
- i8086.de 8086/88 Assembler Command Reference
- Heise Online: NASA is looking for ancient chips on the Internet
- NY Times: For Old Parts, NASA Boldly Goes. . . on eBay