从32位转换为64位计算 [英] The switch from 32 bit to 64 bit computing

查看:196
本文介绍了从32位转换为64位计算的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

因此,我一直在听到有关如今这些人如何(或正在)转移到64位计算的信息.我对64位平台上是否正确支持所有32位应用程序感到好奇.我确实听说过,在64位操作系统上与32位应用程序向后兼容不是很好,所以我想听听您对此的看法.

解决方案

当前,所有基于amd64架构的处理器都支持3种模式. 32位(旧版模式),64位以及兼容模式.最后一种模式意味着运行64位,但具有对32位和16位的兼容性支持(16位实模式除外).由于存在许多32位应用程序,因此大多数使用旧版或兼容模式.但这对您意味着什么?

嗯,实际上,这对您没有多大意义,除非您更深入地研究系统.当您是使用设备驱动程序的程序员时,这可能会影响您.但是,从Windows 95开始,您应该已经使用了64位指针(如果可以的话).大多数时候,您不必担心,让编译器和OS来处理它.如果使用正确的类型,这意味着您使用正确的指针类型,而不是将int32用作指针,那么编译器将使用正确的大小替换该大小,无论它是用于目标的本机指针.因此,一切都归结为正确的代码,因此您根本不会有任何(或至少不是很多)问题.

祝你好运!

>>关于64位系统上的32位应用程序:不必为此担心,因为它最终将与现在的16位应用程序相同.令人遗憾的是,您的处理器中约有25%用于传统指令和永远不会使用的模式.因此,当每个人都完全使用本机64位时,处理器将拥有如此强大的功能,以至于模拟所需的任何模式和指令都不会有任何麻烦.从今天开始,在将字符转换为数字的那一刻开始,放宽那些转换指令,反之亦然,这非常好,因为在今天的ia32系统中,转换成本非常高昂,但仍然占用了大量的小而快速的单字节指令.

对于我运行的每个应用程序,其32位在64位上运行都很好.通常,您只会遇到设备驱动程序的问题.因此,如果您周围有旧打印机,则可能根本无法使驱动程序正常工作,但是由于如今的打印机成本高昂,这对大多数人来说并不是什么大问题.几乎所有新出现的东西都没有问题,作为开发人员/工程师,我们必须确保与现有的最常见系统兼容,而现在,64bit在较新的系统中非常受欢迎(原因是它可以支持的所有RAM).


So I''ve been hearing about how everyone has (or is) moving over to 64 bit computing these days. I''m curious as to whether all 32 bit applications are properly supported on a 64 bit platform. I did hear that backward compatibility towards 32 bit apps on a 64 bit OS isn''t that good so I would like to hear your opinions on this.

Thanks!

解决方案

Currently all amd64 architecture based processors support 3 modes. 32bit (legacy mode), 64bit and also compatibility mode. The last mode means running 64bit but with compatibility support for 32 and 16bit (except 16bit real mode). Since there are a lot of 32bit applications, most use legacy or compatibility mode. But what does this mean for you?

Well, actually it doesn''t mean much to you except when you dive deeper into the system. When you are a programmer working on a device driver this may affect you. However, then you should already use 64bit pointers since windows 95 if you would do it right. Most of the time you don''t have to worry and let the compiler and OS handle it. If you use the right types, meaning you use the correct pointer type and not int32 for pointers, then the compiler will substitute that with the correct size of whatever the native pointer might be for your target. So it all comes down to correct code, so you won''t have any (or at least not very much) problems at all.

Good luck!

>> About 32bit applications on 64bit systems: Don''t worry to much about that because it will eventually be the same with 16bit applications now. It is actually very sad that about 25% of your processor is used for legacy instructions and modes that will never be used. So when everyone is going totally native 64bit, the processor will then have so much power that it has no trouble at all emulating whatever mode and instruction needed. It would actually be very nice to loose those conversion instructions from the time that converting characters to numbers and vice versa where very expensive but still hog a lot of small and fast single byte instructions in ia32 systems today.


Just about every application I''ve ran that''s 32bit runs fine on 64bit. You usually only run into problems with device drivers. So if you have an old printer lying around you may have some problems getting the drivers to work at all, but with the cost of printers nowadays, that''s not a big concern to most people. Just about anything new that''s coming out really has no issue, as developers/engineers, we have to make sure we''re compatible with the most common systems out there, and right now, 64bit is VERY popular in newer systems (cause of all the RAM it can support).


这篇关于从32位转换为64位计算的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆