li
  当前位置:主页 > 操作系统 > 文章内容
li
硬件基础:X86技术窥探
来源: www.ixdba.net  作者: IXDBA.NET官方    时间:2008-08-05   阅读:11  
本文章共5279字,分4页,当前第1页,快速翻页:
 

X86

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系列处理器的市场仅次于Pentium。

8086是16位处理器;直到1985年32位的80386的开发,这个架构都维持是16位。接着一系列的处理器表示了32位架构的细微改进,推出了数种的扩充,直到2003年AMD对于这个架构发展了64位的扩充,并命名为AMD64(有时也被称作x86-64x64EM64T),推出了Opteron处理器家族,开创了x86的64位时代。

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

设计

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

在这篇简短的文章中出现的指令和缓存器助忆符号的名称,都在Intel文件种有所指定以及使用在 Intel组译器中(和兼容的,比如微软的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到第一个缓存器的低半部位),来产生相同的机器码。然而,传统上汇编器一直使用Intel的助忆符号。

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

真实模式

Intel 8086和8088有14个16位缓存器。其中四个(AX, BX, CX, DX)是通用目的(尽管每个缓存器有额外的目的;举个例子:CX可以被用来当作loop(循环)指令的计数器。每个缓存器可以被当成两个分开的字节存取(因此BX的高位可以被当成BH以及低位BL)。除了这些缓存器, 还有四个区段缓存器(CS、DS、SS、ES)。他们用来产生内存的寻址。还有两个指针缓存器(SP是指向堆栈的底部, BP可以用来指向堆栈或内存的其它地方)。两个指针缓存器(SI和DI)可以用来指向数组的内部。最后,有旗标缓存器(包含状态旗标比如进位、溢位、结果为零,等等)。以及IP是用来指向目前执行指令个地址。

在真实模式下,内存的存取是被区段开来。为了得到最后20位的内存地址,要将区段的地址往左移动4位,并且加上偏移的地址。因此,真实模式下总共可以寻址的空间是2



阅读更多内容1 · 2 · 3 · 4 · 下一页>>


  上一篇: IBM System x3850 M2常见问题总结   下一篇: rhel系列最大支持多少内存?
li
 §相关评论  
 热点文章

·新手强烈推荐:linux入门11点建
·Unix学习方法-走向高手之路
·Linux性能分析和调整的基本原则
·你很陌生但是很适用的10个linu
·Oracle补丁3028673,解决单进程
·最近被aix 5305给折腾死了
·在AIX 5L上配置NFS Server/Cli
·在AIX 5L上配置与管理路由
·这个补丁影响的范围还是比较大
·在AIX 5L上使用绑定网卡(ethe
·使用pam_abl防止SSH遭暴力破解
li
 编辑推荐
·新手强烈推荐:linux入门11点建
·Unix学习方法-走向高手之路
·Linux性能分析和调整的基本原则
·你很陌生但是很适用的10个linu
·Oracle补丁3028673,解决单进程
·最近被aix 5305给折腾死了
·在AIX 5L上配置NFS Server/Cli
·在AIX 5L上配置与管理路由
·这个补丁影响的范围还是比较大
·在AIX 5L上使用绑定网卡(ethe
·使用pam_abl防止SSH遭暴力破解
li
 相关篇章
·IBM System x3850 M2常见问题总结
·IBM_SystemX3950 M2常见问题解答
·VMWARE ESX Server 3i 常见问题
·关于linux 32bit和64bit的比较小...
·利用tmpfs加速linux服务器应用的...
·linux下rar包的压缩与解压方案
·怎样限制或者修改/dev/shm的大小
·linux下制作ISO文件方法总结
·安装GD库
·关于ip_conntrack: table full, ...
·rhel系列最大支持多少内存?
·Linux下磁盘配额 Quota的使用
·利用tar命令实现简单的增量备份
·Amanda免费备份工具
·RHEL 5 + Amanda的安装与配置
·使用U盘加载SCSI/RAID卡驱动
·一套linux基础面试题(附答案),...
·Vmware 各个版本序列号大全
·DISPLAY环境变量的设置与作用
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接