系统交流吧 关注:91贴子:873
  • 5回复贴,共1

【系统交流】论x86和x64的系统的区别

只看楼主收藏回复

【科普】论x86和x64的系统的区别
最近看到吧友说32位和64位系统的区别在于内存的支持,就想写这么一篇帖子跟大家说下32位和64位的区别
首先,这只是我对x86和x64的理解,我并不是专业人员,就像这个吧的名字一样,我是个爱好者,今年刚上大一,在这个暑假我在图拉丁吧看到一个帖子,那篇帖子详尽的讨论了x86的32位系统和64位系统的区别,只不过,最后的最后,楼主自己也被绕进去了(汗~),我就结合一下对它们的理解给大家讲解一下吧!
原帖地址:64位32位的差距竟然只和内存寻址有关 神论啊_图拉丁吧_百度贴吧
http://tieba.baidu.com/p/2658737805
开更


1楼2018-01-18 09:04回复
    大家都知道x86和x64的系统有个区别,那就是x86不支持4g内存。其实,实际上x86(32位)和x64最大的区别是支持的指令长度。
    这里有个知识,不知道大家知道没有,x86和x64都是x86指令集!x86指令从8位一直进化到64位增加只是支持的指令长度,而x64是x86的扩展指令集,所以在CPU-Z上检测指令集的时候,有些支持x64的CPU会显示x86-64,这就间接证明了他们的血缘关系(如图)


    2楼2018-01-18 09:04
    回复
      而x86和x64对支持内存大小并没有直接关系,因为x86一样支持4g以上的内存扩展!系统支持多少内存关键在于系统的内存管理机制。在32位时代,微软对xp系统进行了限制,而同是32位的2000Service却因为服务器的需求微软允许她支持多达32g的扩展,而2000Service所以说它们只是支持内存不同是不准确的。他的意义在于支持的指令长度不同!支持的指令长度不同!!支持的指令长度不同!!!(重要的事情说三遍)


      3楼2018-01-18 09:05
      回复
        然后差别在那里?我就举个例子(可以当成个小游戏):
        把指令类比人的对话。而每句话都有它的定长(相当于电脑支持的指令长度),每句话可以有两个汉字或者一个汉字加两个符号(或英文)再或者是四个符号(或英文),以<>+来分别表示对话的开始、结束和表示这句话是连续的,假设在一个定长可以表达完整意思的情况下不需要<>+,那么就有一下对话:
        我们
        我们
        我要吃饭
        <我+
        +要+
        +吃+
        +饭>
        这可以看出差别了吧,第一句话一次就说完了,而第二句话却说了四遍,咳咳~所以,相对来说指令越短表达意思就越麻烦,所以才会有延长指令长度这件事,这就是所谓的扩展指令集。


        4楼2018-01-18 09:05
        回复
          那,如果这个解释听不懂,不满意那你可以试试做个游戏:
          把定长的话写在纸上(最好少于5个字),操场两边各站着一个人,再来一个人充当信使跑来跑去以传递信息,其中一个人要完成上一个人交代的任务,于是便有以下情景:

          这时,你就会发现每句话定长越短跑的次数越多,对电脑的影响不言自明吧。
          因此,两种系统的差别在于对cpu的利用率,尽可能让计算机一句话把话说完,可以很好的提升效率!所以,当计算机越来越复杂之后,为了提高电脑效率就需要扩展指令的长度。当然,大家会想当64位的系统要运行32位的软件时,它这么办?当到这个时候它便会把多条指令进行优化,以组成一条完整的64位指令,这是跟程序和系统的优化息息相关的,而这个就是开发商的事情了。


          5楼2018-01-18 09:06
          回复
            ** 还是大一的小姐姐啊 就这么*了啊


            IP属地:浙江6楼2018-06-22 16:21
            回复