2011-02-04 22 views
1

我不确定16位或32位应用程序的含义。 16位应用程序是不需要超过2^16字节内存空间的应用程序吗?这个16位是指应用程序的最大大小吗?32位应用程序的含义是什么?

+0

这已经被彻底的超级用户回答:http://superuser.com/questions/56540/32-bit-vs-64-bit-systems – 2011-02-04 11:57:42

回答

2

A 32-bit application is software that runs in a 32-bit flat address space.

常见问题的答案

将一个64位的CPU上运行的OS的64位版本的标准(32位)程序? 是的。 64位系统向后兼容32位对应。

64位操作系统会在64位处理器上运行标准应用程序吗? 再次,它会。这是因为向后兼容。

我可以在64位CPU上运行W2K和WXP,并使用旧软件吗? 是的,32位操作系统(W2K和WXP)将在64位处理器上运行。另外,您应该能够在64位操作系统上运行“旧软件”。

2

这意味着应用程序已编译为具有16位内存寻址或32位内存寻址的处理器。 64位应用程序也是如此。

该数字是指应用程序可以处理的最大内存量。

请参阅维基百科 - 16-bit,32-bit,64-bit(以及更多)。

+0

再加上有不同的指令设置在16位和32位之间 – 2011-02-04 11:53:28

0

地址模式(例如“[use16]”和“[use32]”))的编号指令的编号(32或16)是而不是指的是应用程序可以处理的最大内存量!

因为使用80386 +,还可以将operandsize和addressressize前缀与16位PM结合使用,以处理高达4 GB的RAM。

(最大的存储器,我们的应用程序可以是使用量指的所述segmentsize的段条目的GDT/LDT选择器的内部,或通过的64 kb的片段的默认大小。)

32位和16位地址模式之间唯一的区别在于这些操作数大小和地址大小前缀的含义和用法。

[USE16]

因此,如果我们想在16位addressmode 32位的操作数/地址的使用,那么我们对那些前缀添加到我们的操作码。没有这些前缀我们只能使用16位。

[USE32]

在32位addressmode我们发现了一个直径相反的情况,所以如果我们要使用32位的操作数/地址,那么我们必须从我们的操作码离开了那些前缀,只如果我们想要使用16个操作数/地址,那么我们必须将这些前缀添加到我们的操作码中。

如果我们仔细使用这些尺寸指令(或类似的符号),那么我们的汇编程序将完成这项工作。

Operand size prefix in 16-bit mode

德克

相关问题