我不确定16位或32位应用程序的含义。这是一个16位应用程序是一个不需要超过2 ^ 16字节的内存空间的应用程序?这个16位是否指的是应用程序的最大大小?
答案 0 :(得分:2)
这意味着应用程序已针对具有16位内存寻址或32位内存寻址的处理器进行了编译。 64位应用也是如此。
该数字是指应用程序可以处理的最大内存量。
答案 1 :(得分:2)
A 32-bit application is software that runs in a 32-bit flat address space.
常见问题解答
64位CPU是否会在64位版本的OS上运行标准(32位)程序? 是的,它会的。 64位系统向后兼容32位对应系统。
64位操作系统是否会在64位处理器上运行标准应用程序? 它会再次。这是因为向后兼容。
我可以在64位CPU上运行W2K和WXP,并使用旧软件吗? 是的,32位操作系统(W2K和WXP)将在64位处理器上运行。此外,您应该能够在64位操作系统上运行“旧软件”。
答案 2 :(得分:0)
数字(地址模式的汇编指令的32或16(例如“[use16]”和“[use32]”))不是指应用程序的最大内存量可以解决!
因为使用80386+,还可以将操作数大小和地址前缀与16位PM结合使用,以便最多可以处理4 GB的RAM。
(我们的应用程序可以使用的最大内存量是指GDT / LDT选择器内的segmentize的段条目,或者是64kb段的默认大小。)
32位和16位地址模式之间唯一不同的是这些操作数大小和地址大小前缀的含义和用法。
<强> [USE16] 强>
因此,如果我们想在16位地址模式32位操作数/地址中使用,那么我们必须将这些前缀添加到我们的操作码中。如果没有这些前缀,我们只能使用16位。
<强> [USE32] 强>
在32位地址模式中,我们发现了一个截然相反的情况,所以如果我们想要使用32位操作数/地址,那么我们必须从操作码中省略这些前缀,并且只有当我们想要使用16个操作数/地址时,然后我们必须将这些前缀添加到我们的操作码中。
如果我们仔细使用上面的这些大小指令(或类似的表示法),那么我们的汇编程序将完成这项工作。
Operand size prefix in 16-bit mode
德克