<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Intel_8086</id>
	<title>Intel 8086 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Intel_8086"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Intel_8086&amp;action=history"/>
	<updated>2026-07-17T21:12:57Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Intel_8086&amp;diff=61608&amp;oldid=prev</id>
		<title>imported&gt;以偏概全：​修饰语句</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Intel_8086&amp;diff=61608&amp;oldid=prev"/>
		<updated>2026-04-08T19:03:01Z</updated>

		<summary type="html">&lt;p&gt;修饰语句&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{noteTA&lt;br /&gt;
|G1=IT&lt;br /&gt;
|1=zh-cn:变址寄存器;zh-tw:索引暫存器;&lt;br /&gt;
|2=zh-cn:发布;zh-tw:發表;&lt;br /&gt;
}}&lt;br /&gt;
{{Distinguish|Intel Core i7處理器列表#Coffee Lake-S（14 nm）{{!}}Intel i7-8086K}}&lt;br /&gt;
{{Infobox CPU&lt;br /&gt;
| name = Intel 8086&lt;br /&gt;
| image = KL_Intel_D8086.jpg&lt;br /&gt;
| caption = &lt;br /&gt;
| produced-start = 1978年&lt;br /&gt;
| produced-end = 1990年代&lt;br /&gt;
| slowest = 5 | slow-unit = MHz&lt;br /&gt;
| fastest = 10 | fast-unit = MHz &lt;br /&gt;
| manuf1 = [[Intel]]、[[AMD]]、[[NEC]]、[[富士通]]、{{le|哈里斯公司|Harris Corporation|哈里斯}}（[[Intersil]]）、[[沖電氣工業|OKI]]、[[西门子公司]]、[[德州仪器]]、[[三菱集团]]、[[松下電器]]&lt;br /&gt;
| arch = [[x86|x86-16]]&lt;br /&gt;
| pack1 = 40針脚[[雙列直插封裝|DIP]]&lt;br /&gt;
| predecessor = [[Intel 8080]]&lt;br /&gt;
| variant = [[Intel 8088|8088]]&lt;br /&gt;
| successor = [[Intel 80186|80186]]和[[Intel 80286|80286]]（兩種晶片均在1982年引進）&lt;br /&gt;
| size-from = [[3微米制程|3 μm]]&lt;br /&gt;
| transistors-from = 29,000&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Intel 8086&amp;#039;&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;{{cite web|title=Microprocessor Hall of Fame|url=http://www.intel.com/museum/online/hist%5Fmicro/hof/|publisher=Intel|accessdate=2007-08-11|archiveurl=https://web.archive.org/web/20070706032836/http://www.intel.com/museum/online/hist_micro/hof/|archivedate=2007-07-06|deadurl=yes}}&amp;lt;/ref&amp;gt;（亦稱之為&amp;#039;&amp;#039;&amp;#039;iAPX 86&amp;#039;&amp;#039;&amp;#039;）&amp;lt;ref name=&amp;quot;i286&amp;quot;&amp;gt;[http://bitsavers.trailing-edge.com/pdf/intel/80286/210498-001_1983_iAPX_286_Programmers_Reference_1983.pdf Official Intel iAPX 286 programmers&amp;#039; manual] {{Wayback|url=http://bitsavers.trailing-edge.com/pdf/intel/80286/210498-001_1983_iAPX_286_Programmers_Reference_1983.pdf |date=20140319221015 }} (page 1-1)&amp;lt;/ref&amp;gt;是由[[英特爾公司]]於1976年初開始設計，1978年年中發表的Intel第一款[[16位元]][[微處理器]]。随後於1979年，又推出了[[Intel 8088]]，它在晶片的外部連接椎使用8位資料[[匯流排]]（允許使用更廉價和更少[[積體電路]]&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Fewer TTL buffers, latches, multiplexers (although the amount of TTL &amp;lt;u&amp;gt;logic&amp;lt;/u&amp;gt; was not drastically reduced). It also permitted the use of cheap 8080-family ICs, where the 8254 CTC, [[Intel 8255|8255]] PIO, and 8259 PIC were used in the IBM PC design. In addition, it made PCB layout simpler and boards cheaper, as well as demanding fewer (1- or 4-bit wide) DRAM chips.&amp;lt;/ref&amp;gt;）的支援，成為8086的一个低成本的簡化产品，并用在[[IBM PC]]的原始設計中的處理器（包括廣為人所知的[[IBM PC XT]]）中而被人知曉。&lt;br /&gt;
&lt;br /&gt;
8086是Intel最成功的[[x86架构]]处理器系列的开端。&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
=== 背景 ===&lt;br /&gt;
1972年，Intel发布了[[Intel 8008|8008]]微处理器——世界上第一款8位微处理器。&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;using enhancement load [[PMOS logic]] (requiring 14&amp;amp;nbsp;[[Volt|V]], achieving TTL compatibility by having V&amp;lt;sub&amp;gt;CC&amp;lt;/sub&amp;gt; at +5&amp;amp;nbsp;V and V&amp;lt;sub&amp;gt;DD&amp;lt;/sub&amp;gt; at –9&amp;amp;nbsp;V)&amp;lt;/ref&amp;gt; 8008微处理器有18个引脚，其中地址总线使用了14个引脚，且与8位数据总线复用引脚。指令集源自是Datapoint公司为计算机的CRT-键盘终端设计的但相当通用的指令集。当时英特尔还是一家生产[[DRAM]]为主业的公司，缺乏这方面的技术储备。&lt;br /&gt;
&lt;br /&gt;
1974年，Intel发布了[[Intel 8080|8080]]微处理器，&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;using non-saturated enhancement load [[NMOS logic]] (demanding a higher gate voltage for the load transistor gates)&amp;lt;/ref&amp;gt; 被公认是第一款真正可用的微处理器。8080的芯片封装采用40个引脚，其中8个数据总线引脚、16个地址总线引脚都是专用的，因此数据总线与地址总线可以并行工作。8080的扩展后的指令集在源代码级别上向前兼容8008指令集。&lt;br /&gt;
&lt;br /&gt;
1975年，Intel发布了第三款8位微处理器——[[Intel 8085|8085]]。采用了新的制造工艺，简化了输入电压引脚的数量。同一时期还有[[Motorola 6800]]（1974）、Microchip PIC16X（1975）、MOS Technology 6502（1975）、[[Zilog Z80]]（1976）及Motorola 6809（1978）等8位微处理器。在8位微处理器市场竞争中Z80最为成功。&lt;br /&gt;
&lt;br /&gt;
=== 第一种x86设计 ===&lt;br /&gt;
[[File:Intel 8086 CPU Die.JPG|thumb|Intel 8086 晶粒]]&lt;br /&gt;
8086项目起始于1976年5月，是英特尔公司当时更为看重的16位元的{{le|Intel iAPX 432|Intel iAPX 432|iAPX 432}}微处理器的备份项目。8086一方面要与Motorola, Zilog, National Semiconductor等公司的16位元、32位元微处理器竞争-{zh-tw:市佔率;zh-cn:市场份额}-，另一方面也是对Zilog Z80在8位元位微处理器市场上的成功的回击。由于采用了与8085微处理器近似的微体系结构与物理实现工艺-{zh-tw:製程;zh-cn:物理实现工艺}-，8086项目进展相当快。&lt;br /&gt;
&lt;br /&gt;
8086微处理器被设计为在汇编源程序上向前兼容8008, 8080, 8085等微处理器。指令集与编程模式是基于8080微处理器，但指令集做了擴充以完全支援16位元-{zh-tw:運算;zh-cn:计算}-。&lt;br /&gt;
&lt;br /&gt;
新增加的指令包括：完全支持有符号整数、段基址+偏移量寻址、类似于Z80的&amp;lt;ref&amp;gt;[http://www.pcworld.com/article/146957/birth_of_a_standard_the_intel_8086_microprocessor.html Birth of a Standard: The Intel 8086 Microprocessor. Thirty years ago, Intel released the 8086 processor, introducing the x86 architecture that underlies every PC — Windows, Mac, or Linux — produced today] {{Wayback|url=http://www.pcworld.com/article/146957/birth_of_a_standard_the_intel_8086_microprocessor.html |date=20100926200936 }}, PC World, June 17, 2008&amp;lt;/ref&amp;gt;自重复操作、直接支持嵌套的[[ALGOL]]类语言如Pascal或PL/M、微码实现的乘法除法指令、以及更好支持与协处理器（8087或8089）和多处理器系统的总线结构。&lt;br /&gt;
&lt;br /&gt;
第一版的指令集与高层的体系结构的设计仅用了3个月。&amp;lt;ref group=&amp;quot;note&amp;quot; &amp;gt;Rev.0 of the instruction set and architecture was ready in about three months, according to Morse.&amp;lt;/ref&amp;gt; 在没有CAD工具的时代，4名工程师与12名布线绘图员平行工作，&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Using [[rubylith]], light boards, rulers, electric erasers, and a [[digitizer]] (according to Jenny Hernandez, member of the 8086 design team, in a statement made on Intel&amp;#039;s webpage for its 25th birthday).&amp;lt;/ref&amp;gt; 用了2年多的时间才把8086的高层设计实现为可运行测试的产品。这在当时算是很快的研发速度。&lt;br /&gt;
&lt;br /&gt;
8086是随机逻辑&amp;lt;ref&amp;gt;Randall L. Geiger, Phillip E. Allen, Noel R. Strader &amp;#039;&amp;#039;VLSI design techniques for analog and digital circuits&amp;#039;&amp;#039;, McGraw-Hill Book Co., 1990, ISBN 978-0-07-023253-2, page 779 &amp;quot;Random Logic vs. Structured Logic Forms&amp;quot;, illustration of use of &amp;quot;random&amp;quot; describing CPU control logic&amp;lt;/ref&amp;gt;与[[微程序|微码]]的混合实现&amp;lt;ref group=&amp;quot;note&amp;quot; &amp;gt;8086 used less microcode than many competitors&amp;#039; designs, such as the MC68000 and others&amp;lt;/ref&amp;gt;，使用了大约20,000个晶体管（算上所有的[[ROM]]与[[可编程逻辑阵列]]为29,000个晶体管）。芯片面积为33 mm²，-{zh-tw:製程;zh-cn:制造工艺}-为3.2 μm.&lt;br /&gt;
&lt;br /&gt;
8086体系结构由Stephen P. Morse设计，并在最后定案时得到Bruce Ravenel（8087体系结构设计者）的帮助。逻辑设计者是以Jim McKevitt与John Bayliss为首的硬件开发工程师团队&amp;lt;ref group=&amp;quot;note&amp;quot; &amp;gt;Other members of the design team were Peter A.Stoll and Jenny Hernandez.&amp;lt;/ref&amp;gt;。项目经理William Pohlman。迄今8086的指令集仍然是-{zh-tw:個人電腦;zh-cn:PC机}-与服务器的基本指令集。&lt;br /&gt;
&lt;br /&gt;
== 细节 ==&lt;br /&gt;
[[File:Wyprowadzenie mikroprocesora 8086.JPG|200px|thumb|8086引脚的功用，在min与max模式下有所不同]]&lt;br /&gt;
[[File:8086引脚图.png|thumb|最小模式下8086引脚名称和功能简述]]&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:88%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |&amp;#039;&amp;#039;Intel 8086寄存器&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| style=&amp;quot;font-size:88%;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;6&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;9&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;6&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot;| &amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&lt;br /&gt;
| style=&amp;quot;width:auto; background:white; color:black&amp;quot; | &amp;#039;&amp;#039;（比特位置）&amp;#039;&amp;#039;&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;21&amp;quot; | &amp;#039;&amp;#039;&amp;#039;主寄存器&amp;#039;&amp;#039;&amp;#039; &amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center; background:white&amp;quot; colspan=&amp;quot;4&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;8&amp;quot;| AH&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;8&amp;quot;| AL&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| &amp;#039;&amp;#039;&amp;#039;AX&amp;#039;&amp;#039;&amp;#039;（累加器）&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center; background:white&amp;quot; colspan=&amp;quot;4&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;8&amp;quot;| BH&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;8&amp;quot;| BL&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| &amp;#039;&amp;#039;&amp;#039;BX&amp;#039;&amp;#039;&amp;#039;（基址寄存器）&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center; background:white&amp;quot; colspan=&amp;quot;4&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;8&amp;quot;| CH&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;8&amp;quot;| CL&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| &amp;#039;&amp;#039;&amp;#039;CX&amp;#039;&amp;#039;&amp;#039;（计数寄存器）&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center; background:white&amp;quot; colspan=&amp;quot;4&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;8&amp;quot;| DH&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;8&amp;quot;| DL&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| &amp;#039;&amp;#039;&amp;#039;DX&amp;#039;&amp;#039;&amp;#039;（数据寄存器）&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;21&amp;quot; | &amp;#039;&amp;#039;&amp;#039;变址寄存器&amp;#039;&amp;#039;&amp;#039; &amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:#DDD&amp;quot; colspan=&amp;quot;4&amp;quot;| 0&amp;amp;nbsp;0&amp;amp;nbsp;0&amp;amp;nbsp;0&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;16&amp;quot;| SI&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| 源变址寄存器&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:#DDD&amp;quot; colspan=&amp;quot;4&amp;quot;| 0&amp;amp;nbsp;0&amp;amp;nbsp;0&amp;amp;nbsp;0&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;16&amp;quot;| DI&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| 目的变址寄存器&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:#DDD&amp;quot; colspan=&amp;quot;4&amp;quot;| 0&amp;amp;nbsp;0&amp;amp;nbsp;0&amp;amp;nbsp;0&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;16&amp;quot;| BP&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| 基址指针寄存器&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:#DDD&amp;quot; colspan=&amp;quot;4&amp;quot;| 0&amp;amp;nbsp;0&amp;amp;nbsp;0&amp;amp;nbsp;0&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;16&amp;quot;| SP&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| 堆栈指针寄存器&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;21&amp;quot; | &amp;#039;&amp;#039;&amp;#039;程序计数器&amp;#039;&amp;#039;&amp;#039; &amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;background:#DDD&amp;quot; colspan=&amp;quot;4&amp;quot;| 0&amp;amp;nbsp;0&amp;amp;nbsp;0&amp;amp;nbsp;0&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;16&amp;quot;| IP&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| 指令指针&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;21&amp;quot; | &amp;#039;&amp;#039;&amp;#039;段寄存器&amp;#039;&amp;#039;&amp;#039; &amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;16&amp;quot;| CS&lt;br /&gt;
| style=&amp;quot;text-align:center;background:#DDD&amp;quot; colspan=&amp;quot;4&amp;quot;| 0&amp;amp;nbsp;0&amp;amp;nbsp;0&amp;amp;nbsp;0&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| 代码段寄存器&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;16&amp;quot;| DS&lt;br /&gt;
| style=&amp;quot;text-align:center;background:#DDD&amp;quot; colspan=&amp;quot;4&amp;quot;| 0&amp;amp;nbsp;0&amp;amp;nbsp;0&amp;amp;nbsp;0&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| 数据段寄存器&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;16&amp;quot;| ES&lt;br /&gt;
| style=&amp;quot;text-align:center;background:#DDD&amp;quot; colspan=&amp;quot;4&amp;quot;| 0&amp;amp;nbsp;0&amp;amp;nbsp;0&amp;amp;nbsp;0&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| 附加段寄存器&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; colspan=&amp;quot;16&amp;quot;| SS&lt;br /&gt;
| style=&amp;quot;text-align:center;background:#DDD&amp;quot; colspan=&amp;quot;4&amp;quot;| 0&amp;amp;nbsp;0&amp;amp;nbsp;0&amp;amp;nbsp;0&lt;br /&gt;
| style=&amp;quot;background:white; color:black;&amp;quot;| 堆栈段寄存器&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;21&amp;quot; | &amp;#039;&amp;#039;&amp;#039;状态寄存器&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|- style=&amp;quot;background:silver;color:black&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center; background:white&amp;quot; colspan=&amp;quot;4&amp;quot;| &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot;| -&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot;| -&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot;| -&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot;| -&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot;| [[Overflow flag|O]]&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot;| [[Direction flag|D]]&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot;| [[IF (x86 flag)|I]]&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot;| [[Trap flag|T]]&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot;| [[Sign flag|S]]&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot;| [[Zero flag|Z]]&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot;| -&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot;| [[Adjust flag|A]]&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot;| -&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot;| [[Parity flag|P]]&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot;| -&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot;| [[Carry flag|C]]&lt;br /&gt;
| style=&amp;quot;background:white; color:black&amp;quot; | 标志寄存器&lt;br /&gt;
|} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 总线与操作 ===&lt;br /&gt;
所有的内部寄存器、内部及外部数据总线都是16位宽，因此是完全的16位微处理器。20位外部地址总线，因此&amp;#039;&amp;#039;&amp;#039;物理定址空间&amp;#039;&amp;#039;&amp;#039;为1MiB (即2&amp;lt;sup&amp;gt;20&amp;lt;/sup&amp;gt; = 1,048,576).由于内部寄存器都是16位，对1M地址空间寻址时采取了段寻址方式。8086的封装采用40引脚的双列直插（dual in-line），数据总线与地址总线复用了前16个引脚。16位的I/O地址，因此独立的I/O寻址空间为64KiB的&amp;#039;&amp;#039;&amp;#039;虛擬定址空間&amp;#039;&amp;#039;&amp;#039; (即2&amp;lt;sup&amp;gt;16&amp;lt;/sup&amp;gt; = 65,536).由于8086内部的地址寄存器是16 位宽，因而最大线性寻址空间为64 KiB.使用超过64 KiB内存空间的程序设计时，需要调整段寄存器（segment registers）。直到32位的[[80386]]出现之前，8086的这种段寻址相当不便.&lt;br /&gt;
&lt;br /&gt;
8086芯片封装的8个控制引脚在&amp;#039;&amp;#039;min&amp;#039;&amp;#039;或&amp;#039;&amp;#039;max&amp;#039;&amp;#039;下有不同功能。&amp;quot;min&amp;quot;模式是使用单处理器的小型计算机系统，&amp;quot;max&amp;quot;模式是使用多处理器的中到大型计算机系统。&lt;br /&gt;
&lt;br /&gt;
=== 寄存器与指令 ===&lt;br /&gt;
8086有8个16比特的寄存器，包括栈寄存器SP与BP，但不包括指令寄存器IP、控制寄存器FLAGS以及四个段寄存器。AX, BX, CX, DX,这四个寄存器可以按照字节访问；但BP, SI, DI, SP,这四个地址寄存器只能按照16位宽访问。 &lt;br /&gt;
&lt;br /&gt;
8086以[[Intel 8080|8080]]和[[Intel 8085|8085]]（它與8080有[[汇编語言]]上的原始碼相容性）的設計為基礎，擁有類似的暫存器集合，但是擴充為16位元。总线接口單元（Bus Interface Unit）透過6位元組預存（prefetch）的貯列（queue）将指令送给執行單元（Execution Unit），所以取指令和執行是同步的－一種[[流水线 (计算机)|流水线]]的原始形式（8086指令長度變化從1到6位元組）。&lt;br /&gt;
&lt;br /&gt;
8086有四個完全一样的16位元[[暫存器]]，但也能够當作八個8位元暫存器來存取；以及四個16位元索引暫存器（包含堆栈索引）。数据暫存器通常由指令隱含地使用，針對暫存值需要複雜的暫存器配置。它提供64K 8位元的輸出輸入（或32K 16位元）埠，以及固定的向量中斷。大部分的指令只能夠存取一個記憶體位址，所以其中一個運算子必須是一個暫存器。運算結果會儲存在運算子中的一個。&lt;br /&gt;
&lt;br /&gt;
8086有4個[[記憶體區段]]（segment）暫存器，可以通过索引暫存器來設定。區段暫存器可以讓[[CPU]]一种当时是全新的方式存取多达1[[百萬位元組|MB]]之記憶體。在現今有區段的處理器中，8086把區段暫存器左移4位元然後把它加上去寻址。这通常被認為是一個不太好的設計，因為这么做會讓各區段有重疊。儘管這樣對于[[汇编語言]]而言会显得有用——因为可以充分控制區段，但同时却使高级語言中的指针（像是C程式語言）使用變得困難。它降低了指针的高效率，且有可能產生兩個指向同一個地方的指標擁有不同的位址。更壞的是，這種方式產生要讓記憶體擴充到大於1[[百萬位元組|MB]]的困難。而[[80286]]的寻址方式改變讓記憶體擴充較有效率。&lt;br /&gt;
&lt;br /&gt;
由于8位机（如[[Intel 8008]]）时代沿袭下来的紧凑编码，大多数指令虽然有两个源操作数（operands）及一个输出结果，但单条指令至多使用两个地址，因此运算结果被存入一个源操作数中。且最多只能有一个内存操作数，另外的操作数是寄存器或立即数。内存操作数也可以用于存储指令的输出结果。8位微处理器的指令集不能把输出结果直接保存在内存操作数中，因此8086指令集的如此设计大大提高了代码密度（code density）。&lt;br /&gt;
&lt;br /&gt;
相比与8080或8085，8086有更强的寄存器通用性，但比起典型的[[小型计算机]]来说仍有很大不如。8086的某些指令隐式使用某些寄存器。比起更为规则的16- 或32-位处理器如[[PDP-11]], [[DEC VAX|VAX]], [[68000]],等等，8086的寄存器分配特性使得编译器的工作更为复杂;另一方面，比起半现代化的但广为使用的8位微处理器如[[MOS 6502|6502]], [[Motorola 6809|6809]],或[[Intel 8085|8085]],编译器生成代码就容易太多了.&lt;br /&gt;
&lt;br /&gt;
8086有64 KiB的字宽为8位的（或32K个宽度为16位的）[[I/O]]寻址空间. &lt;br /&gt;
&lt;br /&gt;
栈的长度最大为64 KB（一个段） ，8086硬件支持栈顶由高地址向低地址生长。入栈、弹栈的数据单元长度为2字节。栈顶位置由寄存器的组合SS:SP给出. &lt;br /&gt;
&lt;br /&gt;
共有256 个[[中断]],包括硬件中断与软中断。中断可以嵌套，使用栈来保存中断返回地址。&lt;br /&gt;
&lt;br /&gt;
8086增加了一些8080与8085所没有的新指令，用于更好地支持[[Pascal語言|Pascal]]与[[PL/M]]的高级程序设计特性;如&amp;#039;&amp;#039;&amp;#039;push&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;mem-op&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;ret&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;size&amp;#039;&amp;#039;,  (其它一些指令如&amp;#039;&amp;#039;&amp;#039;push&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;immed&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;enter&amp;#039;&amp;#039;&amp;#039;,在随后的80186, 80286, and 80386中陆续增加.) &lt;br /&gt;
&lt;br /&gt;
=== 标志寄存器 ===&lt;br /&gt;
8086有一个16位宽的[[标志寄存器]]FLAGS.其中9个比特是被使用的，另外7个比特保留未用。具体是：进位标志CF、奇偶标志PF、辅助标志AF、为零标志ZF、符号标志SF、追踪标志TF、中断允许标志IF、方向标志DF、溢出标志OF。&lt;br /&gt;
&lt;br /&gt;
=== 内存分段 ===&lt;br /&gt;
{{see also|内存区段}}&lt;br /&gt;
&lt;br /&gt;
在Intel的8位、16位处理器中，由于寄存器的宽度为8或16比特，而地址总线的宽度一般是要大于寄存器的宽度，所以为了能访问整个地址空间，需要采取特殊的寻址计算——分段寻址。从80386开始的32位微处理器，地址总线宽度也是32比特，可以视作扁平（flat）地址空间，不再需要分段寻址。&lt;br /&gt;
&lt;br /&gt;
8086的分段寻址，是指一个物理地址由&amp;#039;&amp;#039;&amp;#039;段地址&amp;#039;&amp;#039;&amp;#039;（segment selector）与&amp;#039;&amp;#039;&amp;#039;偏移量&amp;#039;&amp;#039;&amp;#039;（offset）两部分组成，长度各是16比特。其中段地址左移4位（即乘以16）与偏移量相加即为物理地址。例如，06EFh:1234h，表示段地址为06EFh,偏移量为1234h,物理地址为06EF0h + 1234h = 08124h。在计算物理地址时如果发生上溢出，8086处理器舍弃进位。例如，FFFFh：0010h所对应的物理地址为00000h. &lt;br /&gt;
&lt;br /&gt;
一个20位的物理地址对应着4096个不同的&amp;quot;段地址：偏移量&amp;quot;的组合。这是因为，偏移量的最低4位对应于物理地址的最低四位，而偏移量的高12位共有4096个取值。&lt;br /&gt;
&lt;br /&gt;
段地址所对应的物理地址的粒度是16字节（=2&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;），称之为paragraph。&lt;br /&gt;
&lt;br /&gt;
段地址确定后，偏移量的取值最多为64KiB（=65536），这就是分段寻址的最大的线性地址空间。实际上在8086处理器上，操作系统分配的线性地址空间可以是不大于64KiB的任意数量。程序可以自由访问整个物理内存空间，操作系统没有任何权限限制或监管（supervision）。 &lt;br /&gt;
&lt;br /&gt;
8086处理器有20根地址总线引脚（pins），因此物理内存空间最大为2&amp;lt;sup&amp;gt;20&amp;lt;/sup&amp;gt;=1MiB=1,048,576字节。这还包括了IO内存。因此使用8086处理器的计算机的主存的容量少于1MiB，最常见的主存容量是640KiB。&lt;br /&gt;
&lt;br /&gt;
由于X86指令集的向后兼容原则，计算物理地址时，段地址左移4位被所有后继支持[[实模式]]的X86处理器所继承。80286是使用24位宽地址总线的16位微处理器，如果要在整个2&amp;lt;sup&amp;gt;24&amp;lt;/sup&amp;gt;=16MiB物理存储空间寻址，就必须采用其它方式，即[[保护模式]]寻址，这时16位的段地址是指向&amp;#039;&amp;#039;&amp;#039;段描述符&amp;#039;&amp;#039;&amp;#039;表（segment descriptors table）的一个包含24位基地址的条目，基地址加上16位偏移量即为24位的物理地址。&lt;br /&gt;
 &lt;br /&gt;
在8086上运行的[[编译器]]，一般支持两种C语言的指针：近指针（near）与远指针（far）。近指针是16位的地址偏移值，隐式与程序的代码段地址或数据段地址结合使用以确定物理地址。远指针是32位的“段地址：偏置量”成对出现，用以确定20位的物理地址。某些编译器支持“巨指针”（huge），类似于远指针。但巨指针的地址运算是线性20位；而远指针的地址运算在16位偏移值溢出时不影响段地址部分，因此远指针的线性部分是16位。&lt;br /&gt;
&lt;br /&gt;
为了避免对大量的指针、数据结构、函数指出是“近”还是“远”，编译器提供了内存模式（memory model）给出了缺省的内存访问方式：&lt;br /&gt;
*微模式&amp;#039;&amp;#039;tiny&amp;#039;&amp;#039;数据段代码段共用不超过64K内存空间，编译为.com可执行文件； &lt;br /&gt;
*小模式&amp;#039;&amp;#039;small&amp;#039;&amp;#039;数据段、代码段各用最多64K内存共空间；&lt;br /&gt;
*紧凑模式&amp;#039;&amp;#039;compact&amp;#039;&amp;#039;数据段&amp;gt; 64K；&lt;br /&gt;
*中模式&amp;#039;&amp;#039;medium&amp;#039;&amp;#039;代码段&amp;gt; 64K；&lt;br /&gt;
*大模式&amp;#039;&amp;#039;large&amp;#039;&amp;#039;代码段数据段都&amp;gt; 64K；&lt;br /&gt;
*巨模式&amp;#039;&amp;#039;huge&amp;#039;&amp;#039;单个数组&amp;gt; 64K。 &lt;br /&gt;
预编译库对不同的内存模式要分别编译为相应版本。&lt;br /&gt;
&lt;br /&gt;
==== 移植老的程序 ====&lt;br /&gt;
8位机上的程序可以不考虑段地址直接以.com可执行文件以“微模式”在8086上运行。这是当时8086与MS-DOS作为新平台取得市场成功的关键原因——大量已存的CP/M应用程序能很快得到利用。&lt;br /&gt;
&lt;br /&gt;
===实例代码===&lt;br /&gt;
以下8086/8088[[汇编语言|汇编]]源代码是将给定大小的数据块从一个位置拷贝到另一个位置的叫做&amp;lt;code&amp;gt;_memcpy&amp;lt;/code&amp;gt;的子程序。每次拷贝一个字节，数据移动和循环逻辑采用16位操作。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--NOTE: This is not intended to be optimized code, but to illustrate the variety of instructions available on the CPU--&amp;gt;&lt;br /&gt;
&amp;lt;!--NOTE: The hex codes were assembled by hand, so there may be errors--&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                     &lt;br /&gt;
                     &lt;br /&gt;
                     &lt;br /&gt;
                     &lt;br /&gt;
                     &lt;br /&gt;
                     &lt;br /&gt;
                     &lt;br /&gt;
                     &lt;br /&gt;
                     &lt;br /&gt;
                     &lt;br /&gt;
 &lt;br /&gt;
0000:1000            &lt;br /&gt;
&lt;br /&gt;
0000:1000            &lt;br /&gt;
0000:1000 55         &lt;br /&gt;
0000:1001 89 E5      &lt;br /&gt;
0000:1003 06         &lt;br /&gt;
0000:1004 8B 4E 06   &lt;br /&gt;
0000:1007 E3 11      &lt;br /&gt;
0000:1009 8B 76 04   &lt;br /&gt;
0000:100C 8B 7E 02   &lt;br /&gt;
0000:100F 1E         &lt;br /&gt;
0000:1010 07         &lt;br /&gt;
&lt;br /&gt;
0000:1011 8A 04      &lt;br /&gt;
0000:1013 88 05      &lt;br /&gt;
0000:1015 46         &lt;br /&gt;
0000:1016 47         &lt;br /&gt;
0000:1017 49         &lt;br /&gt;
0000:1018 75 F7      &lt;br /&gt;
&lt;br /&gt;
0000:101A 07         &lt;br /&gt;
0000:101B 5D         &lt;br /&gt;
0000:101C 29 C0      &lt;br /&gt;
0000:101E C3         &lt;br /&gt;
0000:101F            &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; _memcpy(dst, src, len)&lt;br /&gt;
; Copy a block of memory from one location to another.&lt;br /&gt;
;&lt;br /&gt;
; Entry stack parameters&lt;br /&gt;
;      [BP+6] = len, Number of bytes to copy&lt;br /&gt;
;      [BP+4] = src, Address of source data block&lt;br /&gt;
;      [BP+2] = dst, Address of target data block&lt;br /&gt;
;&lt;br /&gt;
; Return registers&lt;br /&gt;
;      AX = Zero&lt;br /&gt;
&lt;br /&gt;
            org     1000h       ; Start at 0000:1000h&lt;br /&gt;
&lt;br /&gt;
_memcpy     proc&lt;br /&gt;
            push    bp          ; Set up the call frame&lt;br /&gt;
            mov     bp,sp&lt;br /&gt;
            push    es          ; Save ES&lt;br /&gt;
            mov     cx,[bp+6]   ; Set CX = len&lt;br /&gt;
            jcxz    done        ; If len=0, return&lt;br /&gt;
            mov     si,[bp+4]   ; Set SI = src&lt;br /&gt;
            mov     di,[bp+2]   ; Set DI = dst&lt;br /&gt;
            push    ds          ; Set ES = DS&lt;br /&gt;
            pop     es&lt;br /&gt;
&lt;br /&gt;
loop        mov     al,[si]     ; Load AL from [src]&lt;br /&gt;
            mov     [di],al     ; Store AL to [dst]&lt;br /&gt;
            inc     si          ; Increment src&lt;br /&gt;
            inc     di          ; Increment dst&lt;br /&gt;
            dec     cx          ; Decrement len&lt;br /&gt;
            jnz     loop        ; Repeat the loop&lt;br /&gt;
&lt;br /&gt;
done        pop     es          ; Restore ES&lt;br /&gt;
            pop     bp          ; Restore previous call frame&lt;br /&gt;
            sub     ax,ax       ; Set AX = 0&lt;br /&gt;
            ret                 ; Return&lt;br /&gt;
            end proc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
上面的代码使用BP（基指针）寄存器建立一个[[调用栈|调用帧]]（包含子程序执行过程中的所有参数和局部变量的栈的区域）。这种[[调用约定]]支持[[reentrancy (computing)|可重入]]和[[递归 (计算机科学)|递归]]代码，大多数类ALGOL语言上世纪50年代后期就已采用这种约定。ES段寄存器保存在堆栈上，并用DS段寄存器中的值替换，于是指令{{code|MOV}}&amp;amp;nbsp;{{code|AL}}会在相同的源数据段和目的数据段之间操作。在返回前，子程序恢复了ES寄存器以前的值。&lt;br /&gt;
&lt;br /&gt;
上面的子程序是一种比较麻烦的拷贝成块数据的方法。若源数据区域和目的数据区域都是处于单个65,536字节的段中（上述程序的要求），使用8086的块&amp;lt;code&amp;gt;MOV&amp;lt;/code&amp;gt;指令更有优势。上面的循环部分可以替换为：&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0000:1011 F2         &lt;br /&gt;
0000:1012 A5         &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=nasm&amp;gt;&lt;br /&gt;
loop        rep                  ; Repeat until CX=0&lt;br /&gt;
            movsw                ; Move the data block&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
这种方法每次可以拷贝一个字。&amp;lt;code&amp;gt;REP&amp;lt;/code&amp;gt;指令使下面的&amp;lt;code&amp;gt;MOVSW&amp;lt;/code&amp;gt;重复直至CX=0，重复之时自动递增SI和DI。另外，&amp;lt;code&amp;gt;MOVSB&amp;lt;/code&amp;gt;或&amp;lt;code&amp;gt;MOVSD&amp;lt;/code&amp;gt;指令可以用来一次拷贝单个字节或双字。大多数汇编器在&amp;lt;code&amp;gt;REP&amp;lt;/code&amp;gt;指令用在&amp;lt;code&amp;gt;MOVSW&amp;lt;/code&amp;gt;之前为&amp;lt;code&amp;gt;REP MOVSW&amp;lt;/code&amp;gt;的情况下都会正确汇编。&lt;br /&gt;
&lt;br /&gt;
如果被中断，这个程序也能正确运行，因为程序计数器会继续指向&amp;lt;code&amp;gt;REP&amp;lt;/code&amp;gt;指令，知道块拷贝已经结束。拷贝会在中断服务程序将控制恢复的时候继续。&lt;br /&gt;
&lt;br /&gt;
=== 性能 ===&lt;br /&gt;
[[File:Intel 8086 block scheme.svg|thumb|405px|&amp;#039;&amp;#039;Intel 8088（8086的一个变种）简化模块图; 1=主寄存器; 2=段址寄存器与IP寄存器; 3=地址加法器; 4=内部地址总线; 5=指令队列; 6=控制单元; 7=总线界面; 8=内部数据总线; 9=ALU; 10/11/12=外部数据/地址/[[控制总线]]&amp;#039;&amp;#039;]]&lt;br /&gt;
外部总线作为数据与地址的复用，降低了CPU的性能。取16比特或8比特数据需要4个时钟周期。指令的长度为1-6个字节，取指令与执行是并发完成的。CPU内的总线界面单元把取到的指令保存在6字节的预取队列中。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center; width: 100px; height: 90px;&amp;quot;&lt;br /&gt;
|+ 典型指令的执行时间&amp;lt;br /&amp;gt;（时钟周期）&amp;lt;ref&amp;gt;{{cite book|title=[[MASM|Microsoft Macro Assembler]] 5.0 Reference Manual|year=1987|publisher=Microsoft Corporation| quote=Timings and encodings in this manual are used with permission of Intel and come from the following publications: Intel Corporation. iAPX 86, 88, 186 and 188 User&amp;#039;s Manual, Programmer&amp;#039;s Reference, Santa Clara, Calif. 1986.}}（Similarly for iAPX 286, 80386, 80387.）&amp;lt;/ref&amp;gt;&lt;br /&gt;
|- valign=bottom style=&amp;quot;border-bottom: 3px double #999;&amp;quot;&lt;br /&gt;
!align=left | 指令&lt;br /&gt;
!align=left | register-register&lt;br /&gt;
!align=left | register immediate&lt;br /&gt;
!align=left | register-memory&lt;br /&gt;
!align=left | memory-register&lt;br /&gt;
!align=left | memory-immediate&lt;br /&gt;
|- valign=top style=&amp;quot;border-bottom:1px solid #999;&amp;quot;&lt;br /&gt;
|mov || 2 || 4|| 8+EA || 9+EA || 10+EA&lt;br /&gt;
|- valign=top style=&amp;quot;border-bottom:1px solid #999;&amp;quot;&lt;br /&gt;
|ALU || 3 ||4|| 9+EA, || 16+EA,|| 17+EA&lt;br /&gt;
|- valign=top style=&amp;quot;border-bottom:1px solid #999;&amp;quot;&lt;br /&gt;
|jump || colspan=&amp;quot;5&amp;quot; | &amp;#039;&amp;#039;register&amp;#039;&amp;#039; =&amp;gt; 11 ; &amp;#039;&amp;#039;label&amp;#039;&amp;#039; =&amp;gt; 15 ; &amp;#039;&amp;#039;condition,label&amp;#039;&amp;#039; =&amp;gt; 16&lt;br /&gt;
|- valign=top style=&amp;quot;border-bottom:1px solid #999;&amp;quot;&lt;br /&gt;
|整数乘法 || colspan=&amp;quot;5&amp;quot; | 70~160（取决于操作数&amp;#039;&amp;#039;data&amp;#039;&amp;#039;以及大小）加上EA&lt;br /&gt;
|- valign=top style=&amp;quot;border-bottom:1px solid #999;&amp;quot;&lt;br /&gt;
|有符号整数除法 || colspan=&amp;quot;5&amp;quot; | 80~190（取决于操作数&amp;#039;&amp;#039;data&amp;#039;&amp;#039;以及大小）加上EA&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
*EA = 计算有效地址的时间，5到12周期.&lt;br /&gt;
*用时为最好的情形,依赖于预取状态,指令对齐,及其它因素.&lt;br /&gt;
&lt;br /&gt;
8086涉及内存访问的指令，包括跳转（jump）指令需要比[[Intel 8080|8080]]与[[Intel 8085|8085]]更多的时间，原因在于：&lt;br /&gt;
* 取指令与执行指令是松散耦合，对于跳转与随机数据访问没有特殊措施，效率较低.&lt;br /&gt;
* 没有专门的地址计算部件，只能用主ALU，虽然有专用的&amp;#039;&amp;#039;段地址&amp;#039;&amp;#039; + &amp;#039;&amp;#039;偏移地址&amp;#039;&amp;#039;的加法器&lt;br /&gt;
* 外部地址总线与数据总线是多工复用，与8位处理器相比要多用33~50%的总线周期 &lt;br /&gt;
&lt;br /&gt;
8086的后继处理器的内存访问性能大大增强了。[[Intel 80186|80186]]与[[Intel 80286|80286]]有专门的地址计算硬件，节约了很多时间周期。80286的外部地址总线与数据总线是分开各自专用的。&lt;br /&gt;
&lt;br /&gt;
=== 浮点 ===&lt;br /&gt;
8086/8088可以连接上专用的数学协处理器以增加浮点计算性能。标准的数学协处理是[[Intel 8087]]，执行80位浮点数运算。&lt;br /&gt;
&lt;br /&gt;
== 微電腦 ==&lt;br /&gt;
第一個以8086為基礎的商業微電腦是[[Mycron]]2000。&lt;br /&gt;
&lt;br /&gt;
IBM Displaywriter文字處理機也使用8086。在大部分顯要的所有微處理器中，[[個人電腦|IBM PC]]使用了更窄的記憶體總線版本的8086，也就是[[Intel 8088]]。&lt;br /&gt;
8086CPU結構上的一個重要特點是分為二大部分，即總線接口單元BIU和執行單元EU，其中BIU負責外部信息交換，EU負責指令執行，二者合理分工、並行工作，工作效率比此前的CPU明顯提高，常稱之為流水線結構。&lt;br /&gt;
&lt;br /&gt;
==硬件模式==&lt;br /&gt;
8086和8088支持两种硬件模式：最大模式和最小模式。最大模式是用在大型应用中的多重处理，并且也是支持8087处理器的必需。该模式通常硬件化在电路中，不能由软件改变。具体来说，#33引脚（MN/{{overline|MX}}）是连载高电压还是接地决定了模式。改变引脚#33的状态就改变了其他特定引脚的功能，这些引脚中大多数是CPU处理（局部）总线的。IBM PC和PC/XT使用工作在最大模式的Intel 8088，让CPU与PC或PC/XT主板上安装在数学协同处理器插口的可选8087协同处理器。（PC和PC/XT可能因为其他原因而要求用最大模式，比如要支持DMA控制器。）&lt;br /&gt;
&lt;br /&gt;
==外设==&lt;br /&gt;
* [[Intel 8237]]：直接存储器存取（DMA）控制器&lt;br /&gt;
* [[Intel 8251]]：USART&lt;br /&gt;
* [[Intel 8253]]：可编程间隔定时器&lt;br /&gt;
* [[Intel 8255]]：可编程序外围接口&lt;br /&gt;
* [[Intel 8259]]：可编程中断控制器&lt;br /&gt;
* [[Intel 8279]]：键盘/显示控制器&lt;br /&gt;
* [[Intel 8282]]/[[Intel 8283|8283]]：8位锁存器&lt;br /&gt;
* [[Intel 8284]]：时钟发生器&lt;br /&gt;
* [[Intel 8286]]/[[Intel 8287|8287]]：双向8位驱动&lt;br /&gt;
* [[Intel 8288]]：总线控制器&lt;br /&gt;
* [[Intel 8289]]：总线仲裁器&lt;br /&gt;
&lt;br /&gt;
==紀念==&lt;br /&gt;
2018年6月8日，英特尔在官网上开启了限量抽奖活动，奖品为i7-8086k，限量生产8086个。&lt;br /&gt;
&lt;br /&gt;
==注释==&lt;br /&gt;
{{Reflist|group=note|liststyle=lower-roman}}&lt;br /&gt;
&lt;br /&gt;
== 参考文献 ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 外部連結 ==&lt;br /&gt;
&lt;br /&gt;
*[http://www.cpu-collection.de/?tn=1&amp;amp;l0=cl&amp;amp;l1=8086/88 Intel 8086/8088 images and descriptions at cpu-collection.de] {{Wayback|url=http://www.cpu-collection.de/?tn=1&amp;amp;l0=cl&amp;amp;l1=8086%2F88 |date=20201031102026 }}&lt;br /&gt;
&lt;br /&gt;
*[http://www.emu8086.com 8086 visual microprocessor emulator]{{Wayback|url=http://www.emu8086.com/ |date=20101230040142 }}&lt;br /&gt;
&lt;br /&gt;
{{Intel處理器列表}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Article based on [https://web.archive.org/web/20030521180431/http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=Intel+8086 Intel 8086] at [http://www.foldoc.org FOLDOC]{{Wayback|url=http://www.foldoc.org/ |date=20040507235706 }}，used with [[Public Domain Resources/Foldoc license|permission]].&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{{Authority control}}&lt;br /&gt;
[[Category:Intel x86处理器]]&lt;br /&gt;
[[Category:16位元微處理器]]&lt;/div&gt;</summary>
		<author><name>imported&gt;以偏概全</name></author>
	</entry>
</feed>