windows x64与x86的区别是什么

windows x64与x86的区别是什么,第1张

windows x64和x86的区别,x86其实就是x32,32与64分别代表着cpu的运行速度,计算机使用的是二进制运算方法,32就代表了2的32次方,也就是4GB左右,最大只能支持4G的运行内存,而64最高可以支持运行内

一、寄存器分配的不同

64位有16个寄存器,32位只有8个,32位前8个都有不同的命名,分别是e_,而64位前8个使用r代替e,即r_;

32位使用栈帧来作为传递的参数的保存位置,而64位使用寄存器,分别用rdi、rsi、rdx、rcx、r8、r9作为第1-6个参数,rax作为返回值;

64位没有栈帧的指针,32位用ebp作为栈帧指针,64位取消了这个设定,rbp作为通用寄存器使用;

二、函数调用的不同

x_64的参数通过寄存器传递,callq在栈里存放一个8位的返回地址;

许多函数不再有栈帧,只有无法将所有本地变量放在寄存器里的才会在栈上分配空间;

一些寄存器被设计成为被调用者-存储的寄存器,这些必须在需要改变他们值的时候存储他们并且之后恢复他们。

三、参数传递的不同

6个寄存器用来传递参数;

剩下的寄存器按照之前的方式传递(不过是与rsp相关了,ebp不再作为栈帧指针,并且从rsp开始第7个参数,rsp+8开始第8个,以此类推);

调用时,rsp向下移动8位(存入返回地址),寄存器参数无影响,第7个及之后的参数现在则是从rsp+8开始第7个,rsp+16开始第8个,以此类推;

四、栈帧的不同

很多情况下不再需要栈帧,比如在没有调用别的函数,且寄存器足以存储参数,那么就只需要存储返回地址即可,需要栈帧的情况:

a 本地变量太多,寄存器不够;

b 一些本地变量是数组或结构体;

c 函数使用了取地址 *** 作符来计算一个本地变量的地址;

d 函数必须用栈传送一些参数给另外一个函数;

e 函数需要保存一些由被调用者存储的寄存器的状态(以便于恢复)

五、运算速度的不同

64位cpu的数据宽度为64位,64位指令集可以运行64位数据指令,也就是说处理器一次可提取64位数据,比32位提高了一倍,理论上性能会相应提升1倍。

实际上X86架构是基础架构,X64架构是基于X86的,也可称为X86-64架构。具体介绍如下:\x0d\x86或80x86是英特尔Intel首先开发制造的一种微处理器体系结构的泛称。该系列较早期的处理器名称是以数字来表示,并以“86”作为结尾,包括Intel 8086、80186、80286、80386以及80486,因此其架构被称为“x86”。x86架构于1978年推出的Intel 8086中央处理器中首度出现,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的。8086在三年后为IBM PC所选用,之后x86便成为了个人计算机的标准平台,成为了历来最成功的CPU架构,如Pentium、Athlon。现在,Intel把x86-32称为IA-32,全名为“Intel Architecture, 32-bit”。\x0d\x86-64架构诞生颇有时代意义。当时处理器的发展遇到了瓶颈,内存寻址空间由于受到32位CPU的限制而只能最大到约4G。AMD主动把32位x86(或称为IA-32)扩充为64位。它以一个称为AMD64的架构出现(在重命名前也称为x86-64),且以这个技术为基础的第一个产品是单内核的Opteron和Athlon 64处理器家族。由于AMD的64位处理器产品线首先进入市场,且微软也不愿意为Intel和AMD开发两套不同的64位 *** 作系统,Intel也被迫采纳AMD64指令集且增加某些新的扩充到他们自己的产品,命名为EM64T架构(显然他们不想承认这些指令集是来自它的主要对手),EM64T后来被Intel正式更名为Intel 64。这两者被统称为x86-64或x64,开创了x86的64位时代。\x0d\关于32位系统与64位系统的比较,速度并不是唯一的考量因素。也不能因为数字上的变化,简单地认为64位CPU的性能是32位CPU的两倍。实际在目前阶段64位的应用程序并不多,即便有,很多也只是因为其32位的版本无法在64位 *** 作系统上运行而产生的。而没有真正做过64位优化的程序,性能上并不会带来太大的提升。相反,在32位的应用上 ,跑32位的CPU性能甚至会更强。另一方面,由于32位的Windows系统最大只支持325G的内存,而64位的Windows系统则可以最大支持128G的内存。所以,当电脑内存大于4G时,就要果断采用64位系统了。

以上就是关于windows x64与x86的区别是什么全部的内容,包括:windows x64与x86的区别是什么、x86与x64的区别、电脑和服务器X86架构和X64架构的区别是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10096728.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存