Intel 8086 microprocessor is a first member of x86 family of processors. Advertised as a "source- code compatible" with Intel 8080 and Intel 8085 processors, the 8086 was not object code compatible with them. The 8086 had complete 16- bit architecture - 16-bit internal registers, 16- bit data bus, and 20-bit address bus (1 MB of physical memory). Because the processor had 16- bit index registers and memory pointers, it could effectively address only 64 KB of memory. To address memory beyond 64 KB the Intel 8086 used segment registers - these registers specified where code, stack data and extra data 64 KB segments are located within 1 MB of total processor memory. To accommodate this awkward memory addressing many 8086 compilers included 6 different memory models: tiny, small, compact, medium, large and huge. 64 KB direct addressing limitation went away with the introduction of the 32-bit protected mode in Intel 80386 processor.