Intel x86的架构模式

网上有关“Intel x86的架构模式”话题很是火热,小编也是针对Intel x86的架构模式寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

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 x30, %al相当,都是会被转译为两个位的机器码B0 30(十六进制)。你可以发现在这段程序中的mov或 al,都是原来的Intel助忆符号。如果我们想要的话,我们可以写一个组译器由代码'move immediate byte hexadecimally encoded 30 into low half of the first register'(移动立即值位十六进制编码30到第一个寄存器的低半部位),来产生相同的机器码。然而,传统上汇编器(Assembler)一直使用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字节,或者是1MB,于1979年是相当让人印象深刻的象征。在实模式下有两种寻址模式:near和far。在 far模式,区段跟偏移都需要被指定;在near模式,只需要偏移模式被指定,而存储器区段是由适当的区段寄存器获得。以数据而言是使用DS寄存器,代码是CS寄存器,堆栈是SS寄存器。举个例子,如果DS是A000h且SI是5677h,DS:SI会指向计忆体的绝对地址DS × 16 + SI = A5677h

在这种架构下,两对不同的区段/偏移可以指向一个相同的绝对地址。因此如果DS是A111h且SI是4567h,DS:SI会指向跟上一段相同的A5677h。除了duplicity之外,这种架构无法同时一次拥有4个以上的区段。此外,CS、DS和SS是为了程序正确功能而必须的,因此仅仅只有ES可以被用来指向其它的地方。这种模式原本是为了与Intel 8085兼容,导致程序设计师永无止尽的痛苦。

除了以上所说的,8086也拥有8-bit的64K(另一种说法是16-bit的32K)输入输出(en:I/O)空间,以及一个由硬件支持的64K(一个区段)存储器堆栈。只有words(2字节)可以被推入到堆栈中。堆栈是由存储器的上端往下成长,他的底端是由SS:SP指向。有256个中断(interrupts),可以由硬件或是软件同时组成。中断是可以串连在一起,使用堆栈来储存返回被中断的程序地址。 Intel 80286可以在不改变任何东西下,支持8086的实模式16位软件,然而它也支持额外的工作模式称为保护模式,可以将可寻址的物理内存扩充到16MB,可寻址的虚拟内存最大到 1GB。这是使用节区寄存器来储存在节区表格中的索引值。处理器中有两个这样的表格,分别为GDT和LDT,每一个可以储存最多8192个节区的描述子,每一个节区可以给予最大到64KB的存储器访问。节区表格提供一个24位的基底地址(base address),可以用此基底地址增加想要的偏移量来创造出一个绝对地址。此外,每一个节区可以被赋予四种权限等级中的一种(称为 rings)。

尽管这个推出的功能是一项进步,但是他们并没有被广泛地使用,因为保护模式的操作系统无法运行现有的实模式软件。这样的能力只有在随后80386处理器的虚拟86模式中出现。

在同时,操作系统比如OS/2尝试使用类似乒乓的方法,让处理器在保护和实模式间切换。这样都会让计算机变慢且不安全,像是在实模式下的程序可以轻易地使计算机当机。OS/2也定义了限制性的程序设计规则允许Family API或bound程序可以在实模式或保护模式下运行。然而这是给原本为保护模式下设计的程序有关,反之则不然。保护模式程序并不支持节区选择子和物理内存之间的关系。有时候会错误地相信在16位保护模式下运行实模式的程序,导致IBM必须选择使用Intel保留给BIOS的中断调用。事实上这类的程序使用任意的选择子数值和使用在上面提到的“节区运算”的方式有关。

这个问题也在Windows 3.x上出现。这个推出版本想要在16位保护模式下运行程序,而先前的版本只能在实模式下运行。理论上,如果Windows 1.x或2.x程序是写得“适当”且避免使用节区运算的方式,它就有可能在真实和保护模式两者下运行。Windows程序一般来说都会避免节区运算,这是因为Windows实现出软件的虚拟内存方式,及当程序不运行时候,搬移存储器中的代码和数据,所以操作绝对地址的方式是很危险的;当程序不运行时,被认为要保持存储器区块的“handles”,这样的handles已经非常相当于保护模式的选择子。在保护模式下的Windows 3.0运行一个旧的程序,会触发一个警告对话盒,建议在实模式下运行Windows(推测还是仍然可以使用扩充存储器,可能是在80386机器用EMM386模拟,因此它并不被局限于640KB)或是从厂商那更新到新的版本。好的行为之程序可能可以使用特别的工具来避免这样的对话盒。不可能有些GUI程序在16位保护模式下运行,且其它GUI程序在实模式运行,可能是因为这会需要两个分开的环境且会依于前面所提到的处理器在两个模式间的乒乓效应。从Windows 3.1版开始,实模式就消失了。 Intel 80386推出后,也许是到目前为止x86架构的最大跃进。除了需要值得注意的Intel 80386SX是32位架构但仅只有24位寻址(和16位数据总线)。除此之外其他架构都是32位 - 所有的寄存器、指令集、输出输入空间和存储器寻址。为了能够在后者所说的功能工作,要使用32位扩充的保护模式。然而不像286,386所有的区段可以使用32位的偏移量,即使存储器空间有使用区段,但也允许应用程序访问超过4GB空间而不需要区段的分隔。此外,32位保护模式提供分页的支持,是一种让虚拟内存得以实现的机制。

没有新的通用寄存器被加入。所有16位的寄存器除了区段寄存器外都扩充为32位。Intel在寄存器的助记符号上加入“E”来表示(因此扩充的AX变成EAX,SI变成ESI,依此类推)。因为有更多的寄存器数量、指令、和运算单元,因此机器码的格式也被扩充。为了提供与先前的架构兼容,包含运行码的区段可以被标示为16或是32位的指令集。此外,特殊的前置符号也可以用来在16位的区段包含32位的脚本,反之亦然。

分页跟区段的存储器访问是为了支持现在多任务操作系统所必须要的。Linux、386BSD、Windows NT和Windows 95都是一开始为386所发展,因为它是第一颗提供可靠地程序分离存储器空间的支持(每个程序拥有自己的寻址空间)以及可以在必要的情况下打断他们程序的运行(使用ring,一种x86保护模式下权力分级的名称)。这种386的基本架构变成未来所有x86系列发展的基础。

Intel 80386数学辅助运算处理器也在集成到这个CPU之后的x86系列中,也就是Intel 80486。新的FPU可以帮助浮点数运算,对于科学计算和图形设计是非常重要。 2001年Intel推出SSE2指令集,增加了:

完整地补充了整数指令(与MMX相似)到原来的SSE寄存器。 64位的SIMD浮点运算指令到原来的SSE寄存器。 第一个的增加导致MMX几乎是过时可以舍弃的,第二个则允许这些指令可以让传统的编译器现实地产生。 2007年1月,Intel公开发表使用其45纳米制程Penryn芯片家族的PC和服务器。Penryn是这一系列依据英特尔Core微架构之笔记本电脑、台式机和服务器芯片家族的代号,首次正式发布时共有16款处理器,除了一款Intel Core 2 Extreme QX9650是针对普通台式机市场外,其余的双核Xeon 5200系列和四核5400系列都是服务器处理器。基本上Penryn是继Merom之后的缩小版Core 2 Duo,再加上47条新的SSE4指令集等额外配备。SSE4指令集之首次发表时间为2006年9月的英特尔开发者论坛(IDF,Intel Developer Forum)。

另外,x86处理器制造厂商AMD也在该公司最新K10架构的Phenom处理器中,加入4条新的SSE4A指令集。注意,SSE4与SSE4A无法彼此兼容。 到2002年,由于32位特性的长度,x86的架构开始到达某些设计的极限。这个导致要处理大量的信息储存大于4GB会有困难,像是在数据库或是影片编辑上可以发现。

Intel原本已经决定在64位的时代完全地舍弃x86兼容性,推出新的架构称为IA-64技术作为他的Itanium处理器产品线的基础。IA-64与x86的软件天生不兼容;它使用各种模拟形式来运行x86的软件,不过,以模拟方式来运行的效率十分低下,并且会影响其他程序的运行。

AMD主动把32位x86(或称为IA-32)扩充为64位。它以一个称为AMD64的架构出现(在重命名前也称为x86-64),且以这个技术为基础的第一个产品是单内核的Opteron和Athlon 64处理器家族。由于AMD的64位处理器产品线首先进入市场,且微软也不愿意为Intel和AMD开发两套不同的64位操作系统,Intel也被迫采纳AMD64指令集且增加某些新的扩充到他们自己的产品,命名为EM64T架构(显然他们不想承认这些指令集是来自它的主要对手),EM64T后来被Intel正式更名为Intel 64。

这是由非Intel的制造商所发起和设计的第一次重大的x86架构升级。也许更重要的,它也是第一次Intel实际上从外部来源接受这项本质的技术。 虚拟x86是很困难的,因为它的架构并未达到波佩克与戈德堡虚拟化需求。然而,有好几个商业的虚拟x86产品,比如VMware和微软的Virtual PC。Intel和AMD两者都有公开宣布未来的x86处理器将会有新的增强来容易达到更有效率的虚拟。Intel针对这项虚拟特性的代号称为Vanderpool和Silvervale;AMD则使用Pacifica这个代号。

关于“Intel x86的架构模式”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[云骢]投稿,不代表绿康号立场,如若转载,请注明出处:https://nmgjkcy.com/lukang/1841.html

(81)

文章推荐

  • 史记的前言和第一篇的概括

    网上有关“史记的前言和第一篇的概括”话题很是火热,小编也是针对史记的前言和第一篇的概括寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。1、史记的前言《史记》是西汉史学家司马迁撰写的纪传体史书,是中国历史上第一部纪传体通史,记载了上至上古传说中的黄帝时代,下至汉

    2025年09月15日
    56314
  • 实测分析“手机拼三张辅助挂下载”(原来确实是有挂)

    实测分析“手机拼三张辅助挂下载”(原来确实是有挂)>亲,手机拼三张辅助挂下载这款游戏原来确实可以开挂,详细开挂教程1、起手看牌2、随意选牌3、控制牌型4、注明,就是全场,公司软件防封号、防检测、 正版软件、非诚勿扰。2022首推。全网独家,诚信可

    2025年09月26日
    83301
  • 绿遍山原白满川子规声里雨雨如烟的川是什么意思

    网上有关“绿遍山原白满川子规声里雨雨如烟的川是什么意思”话题很是火热,小编也是针对绿遍山原白满川子规声里雨雨如烟的川是什么意思寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。川:指的是平地。出处:《乡村四月》(宋)卷翁绿遍山原白满川,子规声里雨如烟。乡村四月闲

    2025年09月29日
    50323
  • 必看教程“中至跑得快挂透视技巧与技巧详解”分享必要外挂教程

    必看教程“中至跑得快挂透视技巧与技巧详解”分享必要外挂教程>亲,中至跑得快挂透视技巧与技巧详解这款游戏原来确实可以开挂,详细开挂教程1、起手看牌2、随意选牌3、控制牌型4、注明,就是全场,公司软件防封号、防检测、 正版软件、非诚勿扰。2022首推。

    2025年09月30日
    45301
  • 辅助开挂工具“pokerworld可以开辅助透视挂吗”(原来确实是有挂)

    亲,pokerworld可以开辅助透视挂吗这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到-人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的,添加客服QQ群【】安装软件. 微信打麻将是一

    2025年10月02日
    52309
  • 教程分享“中州游戏有挂吗”最新辅助详细教程

    无需打开直接搜索微信:本司针对手游进行,选择我们的四大理由:1、软件助手是一款功能更加强大的软件!无需打开直接搜索微信:2、自动连接,用户只要开启软件,就会全程后台自动连接程序,无需用户时时盯着软件。3、安全保障,使用这款软件的用户可以非常安心,绝对没有被

    2025年10月02日
    39310
  • 玩家辅助神器:“威信茶楼可以开挂吗”(确实是有挂)-知乎

    玩家辅助神器:“威信茶楼可以开挂吗”(确实是有挂)-知乎>亲,威信茶楼可以开挂吗这款游戏原来确实可以开挂,详细开挂教程1、起手看牌2、随意选牌3、控制牌型4、注明,就是全场,公司软件防封号、防检测、 正版软件、非诚勿扰。2022首推。全网独家,诚

    2025年10月02日
    50313
  • 实测分享“陕麻圈可以开挂吗”其实确实有挂

    亲,陕麻圈可以开挂吗这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到-人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的,添加客服微信【】安装软件. 微信打麻将是一款非常流行的棋牌游戏,深

    2025年10月06日
    33307
  • 分享实测“微乐甘肃麻将开挂免费下载安装(透视)”详细开挂玩法

    您好:微乐甘肃麻将开挂免费下载安装这款游戏是可以开挂的,软件加微信【添加图中微信】确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的,添加客服微信【添加图中微信】安装软件.

    2025年10月07日
    28306
  • 世界平原综合排名

    网上有关“世界平原综合排名”话题很是火热,小编也是针对世界平原综合排名寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。世界上有许多平原,其中大部分面积广阔,景色壮观。世界上最大的平原是什么?世界上最大的十大平原,让我们来看看!1.亚马逊平原(560万平方公

    2025年10月07日
    36308
  • 电解质检查什么-

    网上有关“电解质检查什么?”话题很是火热,小编也是针对电解质检查什么?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。电解质是什么,怎么检查?病情分析:你好,电解质是溶于水溶液中或在熔融状态下就能够导电(电解离成阳离子与阴离子)并产生化学变化的化合物。另

    2025年10月12日
    20306
  • 新工业革命将带来哪些变化?

    网上有关“新工业革命将带来哪些变化?”话题很是火热,小编也是针对新工业革命将带来哪些变化?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。新的一次工业革命正拉开序幕。这次工业革命是指微电子科技、生物科技、新人工材料技术、通讯、电脑科技以及自动化机械技术等六大科

    2025年10月17日
    7317

发表回复

本站作者才能评论

评论列表(3条)

  • 云骢的头像
    云骢 2025年09月25日

    我是绿康号的签约作者“云骢”

  • 云骢
    云骢 2025年09月25日

    本文概览:网上有关“Intel x86的架构模式”话题很是火热,小编也是针对Intel x86的架构模式寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助...

  • 云骢
    用户092502 2025年09月25日

    文章不错《Intel x86的架构模式》内容很有帮助