Intel 8086

背景

1972年，Intel發布了8008微處理器——世界上第一款8位元微處理器。 8008微處理器有18個引腳，其中位址匯流排使用了14個引腳，並且與8位元資料匯流排復用引腳。指令集源自是Datapoint公司為電腦的CRT-鍵盤終端設計的但相當通用的指令集。當時英特爾還是一家生產DRAM為主業的公司，缺乏這方面的技術儲備。
1974年，Intel發布了8080微處理器， 被公認是第一款真正可用的微處理器。8080的晶片封裝採用40個引腳，其中8個資料匯流排引腳、16個位址匯流排引腳都是專用的，因此資料匯流排與位址匯流排可以並列工作。8080的擴充後的指令集在原始碼級別上向前相容8008指令集。
1975年，Intel發布了第三款8位元微處理器——8085。採用了新的製造工藝，簡化了輸入電壓引腳的數量。同一時期還有Motorola 6800（1974）、Microchip PIC16X（1975）、MOS Technology 6502（1975）、Zilog Z80（1976）及Motorola 6809（1978）等8位元微處理器。在8位元微處理器市場競爭中Z80最為成功。

第一種x86設計

8086專案起始於1976年5月，是英特爾公司當時更為看重的16位元的iAPX 432微處理器的備份專案。8086一方面要與Motorola, Zilog, National Semiconductor等公司的16位元、32位元微處理器競爭市場份額，另一方面也是對Zilog Z80在8位元微處理器市場上的成功的回擊。由於採用了與8085微處理器近似的微體系結構與物理實現工藝，8086專案進展相當快。
8086微處理器被設計為在組譯源程式上向前相容8008, 8080, 8085等微處理器。指令集與編程模式是基於8080微處理器，但指令集做了擴充以完全支援16位元計算。
新增加的指令包括：完全支援有符號整數、段基址+偏移量尋址、類似於Z80的自重複操作、直接支援巢狀的ALGOL類語言如Pascal或PL/M、微碼實現的乘法除法指令、以及更好支援與協處理器（8087或8089）和多處理器系統的匯流排結構.
第一版的指令集與高層的體系結構的設計僅用了3個月。 在沒有CAD工具的時代，4名工程師與12名布線繪圖員平行工作， 用了2年多的時間才把8086的高層設計實現為可執行測試的產品。這在當時算是很快的研發速度。
8086是隨機邏輯與微碼的混合實現，使用了大約20,000個電晶體（算上所有的ROM與可程式化邏輯陣列為29,000個電晶體）。晶片面積為33 mm²，製造工藝為3.2 μm.
8086體系結構由Stephen P. Morse設計，並在最後定案時得到Bruce Ravenel（8087體系結構設計者）的幫助。邏輯設計者是以Jim McKevitt與John Bayliss為首的硬體開發工程師團隊。專案經理William Pohlman。迄今8086的指令集仍然是PC機與伺服器的基本指令集。

匯流排與操作

所有的內部暫存器、內部及外部資料匯流排都是16位元寬，因此是完全的16位元微處理器。20位外部位址匯流排，因此物理定址空間為1MiB (即2²⁰ = 1,048,576).由於內部暫存器都是16位元，對1M位址空間尋址時採取了段尋址方式。8086的封裝採用40引腳的雙列直插（dual in-line），資料匯流排與位址匯流排復用了前16個引腳。16位元的I/O位址，因此獨立的I/O尋址空間為64KiB的虛擬定址空間 (即2¹⁶ = 65,536).由於8086內部的位址暫存器是16 位寬，因而最大線性尋址空間為64 KiB.使用超過64 KiB記憶體空間的程式設計時，需要調整段暫存器（segment registers）。直到32位元的80386出現之前，8086的這種段尋址相當不便.
8086晶片封裝的8個控制引腳在min或max下有不同功能。"min"模式是使用單處理器的小型電腦系統，"max"模式是使用多處理器的中到大型電腦系統。

暫存器與指令

8086有8個16位元的暫存器，包括棧暫存器SP與BP，但不包括指令暫存器IP、控制暫存器FLAGS以及四個段暫存器。AX, BX, CX, DX,這四個暫存器可以按照位元組存取；但BP, SI, DI, SP,這四個位址暫存器只能按照16位元寬存取。 
8086以8080和8085（它與8080有組譯語言上的原始碼相容性）的設計為基礎，擁有類似的暫存器集合，但是擴充為16位元。匯流排介面單元（Bus Interface Unit）透過6位元組預存（prefetch）的貯列（queue）將指令送給執行單元（Execution Unit），所以取指令和執行是同步的－一種流水線的原始形式（8086指令長度變化從1到6位元組）。
8086有四個完全一樣的16位元暫存器，但也能夠當作八個8位元暫存器來存取；以及四個16位元索引暫存器（包含堆疊索引）。資料暫存器通常由指令隱含地使用，針對暫存值需要複雜的暫存器配置。它提供64K 8位元的輸出輸入（或32K 16位元）埠，以及固定的向量中斷。大部分的指令只能夠存取一個記憶體位址，所以其中一個運算子必須是一個暫存器。運算結果會儲存在運算子中的一個。
8086有4個記憶體區段（segment）暫存器，可以通過索引暫存器來設定。區段暫存器可以讓CPU一種當時是全新的方式存取多達1MB之記憶體。在現今有區段的處理器中，8086把區段暫存器左移4位元然後把它加上去尋址。這通常被認為是一個不太好的設計，因為這麼做會讓各區段有重疊。儘管這樣對於組譯語言而言會顯得有用——因為可以充分控制區段，但同時卻使進階語言中的指標（像是C程式語言）使用變得困難。它降低了指標的高效率，且有可能產生兩個指向同一個地方的指標擁有不同的位址。更壞的是，這種方式產生要讓記憶體擴充到大於1MB的困難。而80286的尋址方式改變讓記憶體擴充較有效率。
由於8位元機（如Intel 8008）時代沿襲下來的緊湊編碼，大多數指令雖然有兩個源運算元（operands）及一個輸出結果，但單條指令至多使用兩個位址，因此運算結果被存入一個源運算元中。且最多只能有一個記憶體運算元，另外的運算元是暫存器或立即數。記憶體運算元也可以用於儲存指令的輸出結果。8位元微處理器的指令集不能把輸出結果直接儲存在記憶體運算元中，因此8086指令集的如此設計大大提高了代碼密度（code density）。
相比與8080或8085，8086有更強的暫存器通用性，但比起典型的小型電腦來說仍有很大不如。8086的某些指令隱式使用某些暫存器。比起更為規則的16- 或32-位處理器如PDP-11, VAX, 68000,等等，8086的暫存器分配特性使得編譯器的工作更為複雜;另一方面，比起半現代化的但廣為使用的8位元微處理器如6502, 6809,或8085,編譯器生成代碼就容易太多了.
8086有64 KiB的字寬為8位元的（或32K個寬度為16位元的）I/O尋址空間. 
棧的長度最大為64 KB（一個段） ，8086硬體支援棧頂由高位址向低位址生長。入棧、彈棧的資料單元長度為2位元組。棧頂位置由暫存器的組合SS:SP給出. 
共有256 個中斷,包括硬體中斷與軟中斷。中斷可以巢狀，使用棧來儲存中斷返回位址。
8086增加了一些8080與8085所沒有的新指令，用於更好地支援Pascal與PL/M的進階程式設計特性;如push mem-op, ret size,  (其它一些指令如push immed and enter,在隨後的80186, 80286, and 80386中陸續增加.)

標誌暫存器

8086有一個16位元寬的標誌暫存器FLAGS.其中9個位元是被使用的，另外7個位元保留未用。具體是：進位標誌CF、奇偶標誌PF、輔助標誌AF、為零標誌ZF、符號標誌SF、追蹤標誌TF、中斷允許標誌IF、方向標誌DF、溢位標誌OF。

移植老的程式

8位元機上的程式可以不考慮段位址直接以.com可執行檔以「微模式」在8086上執行。這是當時8086與MS-DOS作為新平台取得市場成功的關鍵原因——大量已存的CP/M應用程式能很快得到利用。

浮點

8086/8088可以連接上專用的數學協處理器以增加浮點計算效能。標準的數學協處理是Intel 8087，執行80位元浮點數運算。

使用8086的微電腦

第一個以8086為基礎的商業微電腦是Mycron2000。
IBM Displaywriter文字處理機也使用8086。在大部分顯要的所有微處理器中，IBM PC使用了更窄的記憶體匯流排版本的8086，也就是Intel 8088。
8086CPU結構上的一個重要特點是分為二大部分，即匯流排介面單元BIU和執行單元EU，其中BIU負責外部資訊交換，EU負責指令執行，二者合理分工、並行工作，工作效率比此前的CPU明顯提高，常稱之為流水線結構。

硬體模式

8086和8088支援兩種硬體模式：最大模式和最小模式。最大模式是用在大型應用中的多重處理，並且也是支援8087處理器的必需。該模式通常硬體化在電路中，不能由軟體改變。具體來說，#33引腳（MN/MX）是連載高電壓還是接地決定了模式。改變引腳#33的狀態就改變了其他特定引腳的功能，這些引腳中大多數是CPU處理（局部）匯流排的。IBM PC和PC/XT使用工作在最大模式的Intel 8088，讓CPU與PC或PC/XT主辦上安裝在數學協同處理器插口的可選8087協同處理器。（PC和PC/XT可能因為其他原因而要求用最大模式，比如要支援DMA控制器。）

紀念

2018年6月8日，英特爾在官網上開啟了限量抽獎活動，獎品為i7-8086k，限量生產8086個。