Java千百问_01基本概念(016)_32位和64位计算机有什么区别
2016-07-02 11:53
465 查看
点击进入_更多_Java千百问
这个位数指的是CPU的通用寄存器(GPRs,General-Purpose Registers,寄存器可以简单理解为一个可以暂存指令、数据和地址的空间,CPU运算时的结果都会暂时放在这里)的指令集、寻址能力。
一般来说,相比较32位的CPU来说,64位CPU最为明显的变化就是寄存器和指令指针升级到64位、内存寻址能力提高到64位,还有其他变化例如增加了8个64位的通用寄存器。更高位数的CPU,可以进行更大范围的整数运算,同时可以支持更大的内存。具体如下:
从运算来说,32位处理器一次只能处理32位,也就是4个字节的数据,而64位处理器一次就能处理64位,即8个字节的数据。
从内存来说,传统32位处理器的寻址空间最大不足4G(理论上有2^32个物理地址),形成了运行效率的瓶颈。而64位的处理器在理论上则可以将近达到1700万个TB(2^64个,大到惊人)。
将16bit数据放入寄存器中
例如:
这里要说明的一点,第一句我们向AX寄存器(累加寄存器)中存放了一个16bit的数1234H,但实际是AX由AH、AL两个寄存器组成,所以可以直接操作AH、AL这两个8位寄存器。
如果我们想在一个寄存器中存入一个超过16bit的数,在16位CPU下是不可能的。如果想处理16bit的数,只能借助其他寄存器,分段处理。
获取16bit内存地址中的数据
例如:
这里要说明的一点,8086的物理地址支持每次传20位的地址,但是由于16位CPU的指令集只能支持16bit,最大的寻址空间理论值为2^16(64K),为了能够支持2^20个地址(1M),所以需要将分为段地址和偏移地址,表现形式如1000H:1234H。
了解CPU物理地址形成看这里:[CPU物理内存地址如何形成][2]
1、32位和64位计算机有什么区别
我们通常说的32位、64位计算机是指计算机的CPU位数。当然很早还有8位、16位的CPU,以Intel的80x86系列来说,8位的8080,16位的8086、8088、80186、80286,而32位的CPU最早始于80386,64位就是大家熟悉的EM64T技术以及AMD的x86-64。当然不同的厂商间同位数的CPU内部有很大的区别,但是它们的核心都是一样:CPU处理能力为64位。这个位数指的是CPU的通用寄存器(GPRs,General-Purpose Registers,寄存器可以简单理解为一个可以暂存指令、数据和地址的空间,CPU运算时的结果都会暂时放在这里)的指令集、寻址能力。
一般来说,相比较32位的CPU来说,64位CPU最为明显的变化就是寄存器和指令指针升级到64位、内存寻址能力提高到64位,还有其他变化例如增加了8个64位的通用寄存器。更高位数的CPU,可以进行更大范围的整数运算,同时可以支持更大的内存。具体如下:
从运算来说,32位处理器一次只能处理32位,也就是4个字节的数据,而64位处理器一次就能处理64位,即8个字节的数据。
从内存来说,传统32位处理器的寻址空间最大不足4G(理论上有2^32个物理地址),形成了运行效率的瓶颈。而64位的处理器在理论上则可以将近达到1700万个TB(2^64个,大到惊人)。
2、CPU位数大小有什么影响
一个简单的例子可以说明CPU位数的影响,对于16位CPU,指令集只能操作16bit数据和16bit地址。不同CPU的寄存器、指令集不同,要区别对待,这里以8086来说明。将16bit数据放入寄存器中
例如:
MOV AX,1234H ;向寄存器 AX 传入数据 1234H MOV AH,56H ;向寄存器 AX 的高 8 位寄存器 AH 中传入数据 56H MOV AL,78H ;向寄存器 AX 的低 8 位寄存器 AL 中传入数据 78H
这里要说明的一点,第一句我们向AX寄存器(累加寄存器)中存放了一个16bit的数1234H,但实际是AX由AH、AL两个寄存器组成,所以可以直接操作AH、AL这两个8位寄存器。
如果我们想在一个寄存器中存入一个超过16bit的数,在16位CPU下是不可能的。如果想处理16bit的数,只能借助其他寄存器,分段处理。
获取16bit内存地址中的数据
例如:
MOV BX,1000H MOV DS, BX ;向DS段寄存器传入1000H,由于8086不支持直接将数据传入段寄存器,所以只能借助其他寄存器传值。 MOV AX,[1234H] ;将内存地址1000H:1234H中的值读到AX寄存器中
这里要说明的一点,8086的物理地址支持每次传20位的地址,但是由于16位CPU的指令集只能支持16bit,最大的寻址空间理论值为2^16(64K),为了能够支持2^20个地址(1M),所以需要将分为段地址和偏移地址,表现形式如1000H:1234H。
了解CPU物理地址形成看这里:[CPU物理内存地址如何形成][2]
相关文章推荐
- kernel笔记:TCP参数
- EL表达式常见用法
- 8.网络技术
- facebook数据采集——利用BigPipe技术和xpath解析数据
- HttpURLConnection简介
- POJ - 3281 Dining 网络流
- 数据结构实验之栈三:后缀式求值
- 云图网络书签收藏分类管理
- HttpClient
- 数据结构也不是那么没意思之中序二叉树+二叉树转伪双向循环链表
- inux下网络发包工具 Tcpreplay3.x。
- 数据结构 ---- 线性表
- redis数据结构解析
- nginx之ngx_http_limit_req
- CCU(网络游戏用语)的解释
- 数据结构-线性表之顺序储存(Java实现)
- TCP/IP详解学习笔记(1)-基本概念
- HttpURLclient
- 深入理解计算机系统笔记
- 数据结构实验之栈二:一般算术表达式转换成后缀式