8086是由英特爾公司於1976年开始設計,1978年年中发布的Intel第一款16位微處理器,同时也是x86架構之開端。
所有的内部寄存器、内部及外部数据总线都是16位宽,因此是完全的16位微处理器。20位外部地址总线,因此物理寻址空间为1MB (即2^20 = 1,048,576).由于内部寄存器都是16位,对1M地址空间寻址时采取了段寻址方式。8086的封装采用40引脚的双列直插(dual in-line),数据总线与地址总线复用了前16个引脚。16位的I/O地址,因此独立的I/O寻址空间为64KB (即2^16 = 65,536).由于8086内部的地址寄存器是16 位宽,因而最大线性寻址空间为64 KB.使用超过64 KB内存空间的程序设计时,需要调整段寄存器(segment registers)。直到32位的80386出现之前,8086的这种段寻址相当不便.
8086有8个16比特的寄存器,包括栈寄存器SP与BP,但不包括指令寄存器IP、控制寄存器FLAGS以及四个段寄存器。AX, BX, CX, DX,这四个寄存器可以按照字节访问;但BP, SI, DI, SP,这四个地址寄存器只能按照16位宽访问。
Block diagram of Intel 8086:
The 8086 registers:
ref:
http://zh.wikipedia.org/zh/Intel_8086
http://www.cnblogs.com/zhaoyl/archive/2012/05/15/2501972.html
Intel 80386,是英特尔(Intel)公司的一款x86系列CPU,最初发布于1985年10月17日。 80386处理器被广泛应用在1980年代中期到1990年代中期的IBM PC兼容机中。这些PC被称为“80386电脑”或“386电脑”,有时也简称“80386”或“386”。 80386的重要特点是:
x86通用寄存器:
ref:
http://blog.chinaunix.net/uid-23069658-id-3756930.html
http://zh.wikibooks.org/wiki/X86%E7%B5%84%E5%90%88%E8%AA%9E%E8%A8%80/X86%E6%9E%B6%E6%9E%84%E5%8F%8A%E5%AF%84%E5%AD%98%E5%99%A8%E8%A7%A3%E9%87%8A
x86-64(簡稱x64)是64位版本的x86指令集,向前相容於16位及32位的x86架構。x64於1999年由AMD設計,AMD首次公開64位元集以擴充給x86,稱為「AMD64」。其後也為英特爾所採用,現時英特爾稱之為「Intel 64」,在之前曾使用過「Clackamas Technology」 (CT)、「IA-32e」及「EM64T」。 Apple 和 rpm 以「x86-64」或「x86_64」稱呼此64位架構。太陽電腦(已被甲骨文公司收購)及 Microsoft 稱之為「x64」。BSD 家族及其他 Linux發行版則使用「amd64」,32位元版本則稱為「i386」(或 i486/586/686)。 在x86-64出現以前,英特爾與惠普聯合設計出IA-64架構;惟IA-64並不與x86兼容,且市場反應較冷淡,同時受制於多個專利權,使其他廠商不能模仿。與x86兼容的AMD64架構便應運而生,其主要特點如名稱所述,既有支援64位通用暫存器、64位整數及邏輯運算、以及64位虛擬位址,設計人員又為架構作出不少改進,部份重大改變如下:
ref:
http://zh.wikipedia.org/zh/X86-64
http://www.searchtb.com/2013/03/x86-64_register_and_function_frame.html
(CPU中程序员唯一能够控制的就是寄存器)