x86,ia32...

From Wiki:

 

x8680x86是英代尔Intel首先开发制造的一种微处理器体系结构的泛称。

该系列较早期的处理器名称是以数字来表示,并以“86”作为结尾,包括Intel 8086、80186、80286、80386以及80486,因此其架构被称为“x86”。由于数字并不能作为注册商标,因此Intel及其竞争者均在新一代处理器使用可注册的名称,如Pentium。现时Intel把x86-32称为IA-32,全名为“Intel Architecture,32-bit”。不过,由于x86包括16位的处理器,这样的命名也出现麻烦。

 

历史

x86架构于1978年推出的Intel 8086中央处理器中首度出现,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的。8086在三年后为IBM PC所选用,之后x86便成为了个人电脑的标准平台,成为了历来最成功的CPU架构。

其他公司也有制造x86架构的处理器,计有Cyrix(现为VIA所收购)、NEC集团、IBM、IDT以及Transmeta。Intel以外最成功的制造商为AMD,其早先产品Athlon系列处理器的市场份额仅次于Intel Pentium。

8086是16位处理器;直到1985年32位的80386的开发,这个架构都维持是16位。接着一系列的处理器表示了32位架构的细微改进,推出了数种的扩充,直到2003年AMD对于这个架构发展了64位的扩充,并命名为AMD64。后来Intel也推出了与之兼容的处理器,并命名为Intel 64。两者一般被统称为x86-64x64,开创了x86的64位时代。

值得注意的是Intel早在1990年代就与HP合作提出了一种用在安腾系列处理器中的独立的64位架构,这种架构被称为IA-64。IA-64是一种崭新的系统,和x86架构完全没有相似性;不应该把它与x86-64x64弄混。

 

设计

x86架构是重要地可变指令长度的CISC(复杂指令集电脑,Complex Instruction Set Computer)。字组(word, 4位组)长度的存储器访问允许不对齐存储器地址,字组是以低位字节在前的顺序存储在存储器中。向后兼容性一直都是在x86架构的发展背后一股驱动力量(设计的需要决定了这项因素而常常导致批评,尤其是来自对手处理器的拥护者和理论界,他们对于一个被广泛认为是落后设计的架构的持续成功感到不解)。但在较新的微架构中,x86处理器会把x86指令转换为更像RISC的微指令再予执行,从而获得可与RISC比拟的超标量性能,而仍然保持向前兼容。x86架构的处理器一共有四种执行模式,分别是真实模式,保护模式,系统管理模式以及虚拟V86模式。

在这篇简短的文章中出现的指令和暂存器助忆符号的名称,都在Intel文件中有所指定以及使用在 Intel汇编器(Assembler)中(和兼容的,比如微软的MASM、Borland的TASM、CAD-UL的as386 等等)。一个以Intel语法指定的指令"mov al, 30h"与AT&T语法的"movb $0x30, %al"相当,都是会被转译为两个位的机器码"B0 30"(十六进制)。你可以发现在这段程序中的"mov"或 "al",都是原来的Intel助忆符号。如果我们想要的话,我们可以写一个汇编器由代码'move immediate byte hexadecimally encoded 30 into low half of the first register'(移动立即值位十六进制编码30到第一个暂存器的低半部位),来产生相同的机器码。然而,传统上汇编器(Assembler)一直使用Intel的助忆符号。

x86汇编语言会在x86汇编语言文章中有更详细的讨论。

你可能感兴趣的:([Reading,Note],Computer,Systems,-,A,Programmers's,x86,汇编,borland,ibm,存储,制造)