cpu

8086的上一代cpu是8位机,8086是16位机(16位结构的cpu):运算器一次最多处理16位数据;寄存器的最大宽度是16位;寄存器和运算器之间的通路是16位。在8086内部,能够一次性处理传输,暂时存储信息的最大长度是16位。内存单元的地址在送上地址总线之前必须在cpu中处理,传输,暂时存放,对于十六位的cpu能一次性处理传输暂时存储16位结构的地址。

cpu是通过地址总线来指定存储单元的,可见地址总线上能传送多少个不同的信息,cpu就可以对多少个存储单元进行寻址,地址总线决定乐cpu的寻址能力。8086有20位地址总线可以传送20位地址,2^20=1MB的寻址能力,可以寻址1MB的内存单元,那么这1MB的内存单元就构成这个cpu的内存单元地址。

cpu与内存或着者其他部件的数据传送是通过数据总线来进行的,8086cpu有16位数据总线。

控制总线决定乐cpu对系统中其它部件的控制能力。

8086cpu有16位的数据总线,有20位地址总线,所以从cpu的角度出发只能送出16位的地址,表现出的寻址能力只有64kb。但是20位地址总线,达到1MB的寻址能力。所以8086cpu采用两个十六位地址合成的方法形成一个20位的物理地址。


现代应用程序都运行在一个内存空间里面,在32位的系统理,这个内存空间拥有4GB的寻址能力。相对于16位时代的i386的段地址加偏移地址的寻址模式,如今的应用程序可以直接使用32位的地址进行寻址,这被成为平坦的内存模型。在平坦的内存模型中,整个内存是统一的地址空间,用户可以使用一个32位的指针访问任意的内存地址。


许多类型的处理器(cpu)可以运行在两种不同的模式下:32-bit mode 和64-bit mode,在32位的模式下,最多能访问4GB(2^32,我们表示的时候常常是0x00000000-0xffffffff)的内存空间间在64bit的模式下能访问到更多的内存空间。比较老的处理器只能支持32-bit的模式。

在安装操作系统的时候,我们可以选择使用那种模式的cpu,使用32bit  or  64bit。假设你现在使用电脑的处理器支持32-bit mode也支持64-bit mode但是你现在使用的操作系统是32bit的 那么你想转换成64bit的那么你就要重新装系统了。(比较旧的system只是支持32bitmode)

应用程序也可以写成32-bit mode或者是64-bit mode。在这里兼用性是一个棘手的问题,intel的cpu都保持这向上兼容的特性:当cpu运行在64-bit mode 下时,它仍然可以支持32-bit mode的应用程序。也就是说64bit的操作系统(cpu运行在64-bit mode)既可以运行32 bit mode 也可以运行64 bit mode的应用程序,但是在32bit 的os中你只能运行32 bit  mode的 app。


参考:http://stackoverflow.com/questions/1283797/processor-os-32bit-64-bit

http://www.machine-information-systems.com/32_Bit.html

and 《汇编语言》(王爽)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值