在英特尔64& IA-32 architecutures手册第3A卷,第9章处理器管理和初始化,我发现了以下内容:
在代码段的基础上选择兼容模式执行。此模式允许旧版应用程序与以64位模式运行的64位应用程序共存。在IA-32e模式下运行的操作系统可以通过将其代码段描述符的CS.L位清除为0来执行现有的16位和32位应用程序。
这是否意味着传统的16位& 32位应用程序可以与在IA-32e模式下运行的操作系统上的64位应用程序共存。
但据我所知,64位操作系统通常不支持传统的16位代码。如果支持,我该如何启动16位应用程序?
答案 0 :(得分:7)
Windows 64位不支持16位应用程序的原因不是因为64位模式无法运行16位指令。
主要原因是句柄在64位Windows上有32位有效位。因此,句柄不能被截断并传递给16位应用程序而不会丢失数据。
http://msdn.microsoft.com/en-us/library/aa384249%28VS.85%29.aspx
答案 1 :(得分:1)