五二电子网 管理员组

文章数量: 1493

一、寄存器分配的不同

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架构。所以只是称呼上不一样,一般人叫X86架构,有64位和32位之分,

什么是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个字节的数据)提高了一倍,理论上性能会相应提升一倍。

电脑怎么看是X64系统还是x86系统?

查看电脑是X64系统还是x86系统的操作如下(以Win10为例说明):

1、在开始菜单的windows图标点击右键,弹出右键菜单,如下图:

2、在上图红框处,点击“系统”项,弹出系统窗口,如下图:

在上图“系统”窗口的红框处,(示例)显示系统类型为“64位操作系统,基于64位的处理器”,即X64。如果是32位操作系统,则为X86。

如此,可判断电脑是X64系统还是x86系统。

要查看您的计算机是运行32位(x86)还是64位(x64)操作系统,可以按照以下步骤进行操作:

在Windows 10中,右键单击“开始”按钮,然后选择“系统”。

在弹出的“系统”窗口中,查找“系统类型”字段。如果该字段显示“64位操作系统”,则表示您的计算机运行64位操作系统。如果该字段显示“32位操作系统”,则表示您的计算机运行32位操作系统。

在Windows 7中,可以按照以下步骤进行操作:

点击“开始”按钮,然后右键单击“计算机”。

选择“属性”。

在弹出的“基本信息”窗口中,查找“操作系统”字段旁边的“系统类型”字段。如果该字段显示“64位操作系统”,则表示您的计算机运行64位操作系统。如果该字段显示“32位操作系统”,则表示您的计算机运行32位操作系统。

本文标签: 系统 寄存器 参数 需要 地址