32位应用程序是什么意思?
我不确定 16 位或 32 位应用程序是什么意思。 16 位应用程序是不需要超过 2^16 字节内存空间的应用程序吗?这个16位是指应用程序的最大大小吗?
I am not sure what is meant by 16-bit or 32-bit applications. Is that a 16-bit application is an application which would not require more than 2^16 bytes of memory space? Does this 16-bit refers to the max size of the application?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这意味着应用程序已针对具有 16 位内存寻址或 32 位内存寻址的处理器进行编译。 64 位应用程序也是如此。
该数字是指应用程序可以寻址的最大内存量。
请参阅维基百科 - 16 位、32 位, 64 位(及更多)。
It means the application has been compiled for a processor that has 16 bits of memory addressing or 32 bit of memory addressing. Same goes for 64 bit applications.
The number refers to the maximum amount of memory that the application can address.
See wikipedia - 16-bit, 32-bit, 64-bit (and more).
32 位应用程序是在 32 位平面地址空间中运行的软件。
常见问题解答
64 位 CPU 能否在 64 位版本的操作系统上运行标准(32 位)程序?
是的,会的。 64 位系统向后兼容 32 位系统。
64 位操作系统能否在 64 位处理器上运行标准应用程序?
再说一次,它会的。这是因为向后兼容性。
我可以在 64 位 CPU 上运行 W2K 和 WXP 并使用旧软件吗?
是的,32 位操作系统(W2K 和 WXP)将在 64 位处理器上运行。此外,您应该能够在 64 位操作系统上运行“旧软件”。
A 32-bit application is software that runs in a 32-bit flat address space.
Answers to common questions
Will a 64 bit CPU run a standard (32-bit) program on a 64-bit version of an OS?
Yes it will. 64 bit systems are backward compatible with the 32 bit counterparts.
Will a 64-bit OS run a standard application on a 64 bit processor?
Again, it will. This is because of backward compatibility.
Can I run W2K and WXP on an 64 bit CPU, and use old software?
Yes, a 32 bit OS (W2K and WXP) will run on a 64 bit processor. Also, you should be able to run "old software" on a 64 bit OS.
地址模式的汇编指令的数字(32 或 16(例如“[use16]”和“[use32]”))不指的是应用程序可以寻址的最大内存量!
因为对于 80386+,还可以将操作数大小和地址大小前缀与 16 位 PM 结合使用,以寻址高达 4 GB 的 RAM。
(我们的应用程序可以使用的最大内存量是指 GDT/LDT 选择器内的段大小的段条目,或者是 64 kb 段的默认大小。)
32 位和 32 位之间的唯一区别- 16 位地址模式是那些操作数大小和地址大小前缀的含义和用法。
[use16]
因此,如果我们想在 16 位地址模式下使用 32 位操作数/地址,那么我们必须将这些前缀添加到我们的操作码中。如果没有这些前缀,我们只能使用 16 位。
[use32]
在 32 位地址模式中,我们发现了完全相反的情况,因此如果我们想使用 32 位操作数/地址,那么我们必须从操作码中删除这些前缀,并且只有当我们想要时要使用 16 个操作数/地址,那么我们必须将这些前缀添加到我们的操作码中。
如果我们仔细使用上面的这些尺寸指令(或类似的符号),那么我们的汇编器将完成这项工作。
16 位模式下的操作数大小前缀
Dirk
The number(32 or 16 of the assembler directive of the addressmode (example "[use16]" and "[use32]")) does not refers to the maximum amount of memory that the application can address!
Because with the 80386+ it is also possible to use operandsize- and adresssize prefixes in combination with the 16 bit PM for to address up to 4 GB of ram.
(The maximum amount of memory that our application can be use is refering to the segment entries of the segmentsize inside of a GDT/LDT selector, or by the default size for a segment of 64 kb.)
The only one differnce between the 32 bit - and the 16 bit addressmode is the meaning and the usage of those operandsize- and addresssize prefixes.
[use16]
So if we want to use in the 16 bit addressmode 32 bit operands/addresses, then we have to add those prefixes to our opcode. Without those prefixes we can only use 16 bit.
[use32]
In the 32 bit addressmode we found a diametrical opposite situation, so if we want to use 32 bit operands/addresses, then we have to leave out those prefixes from our opcode and only if we want to use 16 operand/addresses, then we have to add those prefixes to our opcode.
If we use these size-directives above(or similar notation) carefully, then our assembler will do this job.
Operand size prefix in 16-bit mode
Dirk