x86x64(x86x64有哪些特点)
一、x86和x64处理器有什么区别
Linux操作系统中x64和x86的区别如下:
一、寄存器分配的不同
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有什么区别
“windows x64和x86有啥区别”这个问题和“windows64和32有啥区别”是一样的,因为x64其实就是64位,x86其实就是32位,在口语中我们说32位会多于x86,至少这样更符合中文的语言习惯。所以本文就来分析一下windows x64和x86区别是什么。
windows x64和x86指的是什么:
windowsx64和x32,都是用来形容操作系统的,所以我们在下载操作系统的时候,会存在winx64和x86位系统的选择。
而不同位数的操作系统,对CPU的运算方式产生的影响或者要求亦不同,所以从更深层次的角度来说,windows64和32位是指CPU运算方式的差异。
windows x64和x86最主要的区别:
很多人之所以关注windows x64和x86的差异,是因为32位系统最多只能发挥4G内存的效用,如果电脑安装了大于4G的内存,32位的操作系统是不能更好的利用大于4G的那部分内存的效用的,所以会造成资源浪费。
而64位的操作系统,按照微软对系统的设定,家庭版本的win7可以最多支持16G的内存,而专业版和旗舰版的win7最多支持的内存容量可达192G内存。
所以如果你电脑拥有超过4G的内存,则建议安装64位的操作系统,这是这两者最大的区别。
如何判断自己的电脑是否可以安装64位的系统:
基本所有的电脑都可以安装32位的系统,现在也有越来越多的电脑刚刚买回来的时候,就预装了64位的系统,因为这样能够更好的利用大内存的效用;
但是一些比较旧的电脑,可能不能支持64位的系统,要判断你的电脑是否支持64位系统,可以利用“SecurAble”这款软件来查看。
详细教程可以通过教你windows x64和x86区别是什么获知。
三、x86和X64是什么意思
截止2020年6月:
X86就是一般用的32位的系统,X64就是64位的系统。
X64本质上也是X86的一个版本,确切来说,应该叫x86_64,可以简单理解成X86的下一代版本。由于X86已经淘汰,因此X64早已经是主流了。
目前的电脑CPU都是基于64位设计,也就是X64,只有很早以前的一些古董CPU才是X86(32位)版本,因此一般我们下载系统版本,是选择X64,不建议X86,除非是CPU为X86架构,很老的电脑。
扩展资料:
32位和64位系统区别如下:
1、设计初衷不同
64位操作系统的设计初衷是为了满足机械设计和分析、三维动画、视频编辑和创作,以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户需求,而32位系统,初期并没有考虑太多。
2、内存寻址能力不同
32位系统,最大只能支持3.5GB内存,如果在32位系统中,使用的是4GB或者更大容量内存,电脑只可以识别到3.4GB可用,而64位系统最大可以支持128GB大内存。
3、运算速度不同
安装64位系统,需要CPU必须支持64位,而64位CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集可以运行64位数据指令,也就是说处理器一次可提取64位数据(只要两个指令,一次提取8个字节的数据),比32位(需要四个指令,一次提取4个字节的数据)提高了一倍,理论上性能会相应提升一倍。