众所周知,CPU(中央处理单元)是计算机的核心部分,CPU在单位时间内能一次处理的二进制数的位数叫字长,从386.486直到奔腾系列的CPU都是32位,大多数情况32位计算已经能满足现阶段人们的需要.然而随着互联网等技术的发展,对内存的需求越来越大,比如大型服务器,每秒钟处理的数据量就超过2G,32位就难以满足需求了. 按照以前的习惯,我们把基于80x86的CPU架构称作x86结构,这时Intel公司在1978年发其第一块16位的CPU(5MHz 8086)而开发的,1981年IBM推出的第一台…
1 32位Intel的CPU通用寄存器 32位CPU所含有的寄存器有:4个数据寄存器(EAX.EBX.ECX和EDX):2个变址和指针寄存器(ESI和EDI):2个指针寄存器(ESP和EBP):6个段寄存器(ES.CS.SS.DS.FS和GS):1个指令指针寄存器(EIP):1个标志寄存器(EFlags). 其中4个数据寄存器和2个编址和指针寄存器以及2个指针寄存器也是我们常说的通用寄存器. 1.1 数据寄存器 数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需要占用总线和访问…
平时,我们谈论CPU,都会说某程序是32位编译,可以跑在32位机或64位机,或则是在下载某些开源包时,也分32位CPU版本或64CPU位版本,又或者在看计算机组成相关书籍时,特别时谈到X86 CPU时,一定会把8086/80286/80386拿出来说事儿,且一定会提到8086/80286是16位CPU,从386开始是32位CPU,那么这里的16/32/64位究竟说的是CPU的指标?其实这里的谈的就是CPU的字长. 一.计算机里的“字” 在计算机中,一串二进制数码作为一个整体来处理或运算的,称为一…
不同的编译器根据不同的 64 位模型有所不同. 比如 Visual C++,从第一个支持 64 位的版本起,一直就是使用 LLP64 内存模型,也就是说,编译出的代码除了 long 和指针是 64 位,int 保持 32 位不变. 可以运行下代码得到结果. #include <stdio.h>int main(){ printf("char: %d\n",sizeof(char)); printf("char *: %d\n",sizeof(char *…
借由这个问题,今天我们就把 32 位 CPU.64 位 CPU.32 位操作系统.64 位操作系统之间的区别与联系彻底搞清楚.对于这个问题,博主也是一知半解了好长时间啊~ 基本概念 32位的CPU与64位CPU 以下内容摘自维基百科: 64 位 CPU 是指 CPU 内部的通用寄存器的宽度为 64 比特,支持整数的 64 比特宽度的算术与逻辑运算.那么 32 位 CPU 同理. 一个 CPU,联系外部的数据总线与地址总线,可能有不同的宽度:术语“64位”也常用于描述这些总线的大小.不过这一术语也…
操作系统只是硬件和应用软件中间的一个平台. 32位操作系统针对的32位的CPU设计. 64位操作系统针对的64位的CPU设计.操作系统只是硬件和应用软件中间的一个平台. 32位操作系统针对的32位的CPU设计. 64位操作系统针对的64位的CPU设计. 我们的CPU从原来的8位,16位,到现在的32位和64位. cpu处理计算的时候“数据”和“指令”是不同对待的. 8位的CPU,一次只能处理一个8位的“数据”或者一个8位的"指令".比如'00001101'. 又比如:“+1”这个运算,…
Java.lang.UnsatisfiedLinkError: C:\apache\apache-tomcat-7.0.14\bin\tcnative-1.dll: Can't load AMD 64-bit .dll on a IA 32 tomcat一直报错:Can't load AMD 64-bit .dll on a IA 32 下面说下过程:在CMD输入:java -version 看第三行内容是否包含“64”,如果不包含,说明你的JAVA_HOME的地址指向为32位的JDK,下载一个…
32 bit  与 64 bit 程序(2)区别 由于操作系统内存分配的不同,导致软件开发过程中,需要编译不同版本的软件. 几个重要概念:  (1)这里所说的的32位与64位程序,是指经过编译器编译后的可执行文件,例如像Windows上的exe文件,而最初编写的源码并没有32位和64位之说. (2)不是所有的程序需要区分32位和64位,对于原生语言例如C语言编写的程序需要区分64位与32位,但是对于像Java这样的语言,就不需要这样了,因为Java编写的程序是在JVM(Java虚拟机)上运行的,…
0. 前言 不知道为什么,几乎所有的C++编程教程都是从命令行版(控制台应用程序)的Hello World开始的.然而,对于现在的年轻人来说,从小就用鼠标点击窗口或图标操作电脑,对于那个神秘黑色的窗口中的文字就像天书.对于我们这些从DOS时代走来的人,或许那个黑色窗口会唤起很多记忆,但是,对于当前的GUI化的时代来说,那个窗口已经没有多少意义了.除非为了显示我的知识渊博和高深莫测,通常我不会给年轻人讲述那个黑色窗口中的东西. 既然现在学习C++编程的都是年轻人,我还是讲一下怎样构建GUI版的He…
Intel X86 32位CPU内存管理 在X86系列中,8086和8088是16为处理器,而从80386开始为32为处理器,80286则是该系列从8088到80386,也就是16位处理器到32位处理器的一个过渡. 段式内存管理 Intel决定在16位CPU,也就是8086CPU,中使用1M的内存空间,地址总线的宽度也就为20位,但是CPU的ALU(算术逻辑单元)的宽度只有16位,因此采用了"分段"的设计方法. Intel在8086CPU内置了四个段寄存器:CS,DS,SS和ES,分别…