【问题标题】:what is meant by 32-bit application?32位应用程序是什么意思?
【发布时间】:2011-06-21 07:46:58
【问题描述】:

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

【问题讨论】:

标签: 32-bit 16-bit


【解决方案1】:

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

数字是指应用程序可以寻址的最大内存量。

参见维基百科 - 16-bit32-bit64-bit(以及更多)。

【讨论】:

  • 另外 16 位和 32 位指令集不同
  • @Felice Pollano - 虽然这并不是这些术语的真正含义。指令集可以相同(除了内存寻址)。
  • @Oded 那么我们可以简单地说'16位应用程序'中的16位是指应用程序可以在内存空间中占用的最大大小吗?
  • @Saurabh - 它也指可以运行的处理器类型。有些 32 位处理器向后兼容 16 位应用程序,有些则没有
  • @Oded mov eax,1 mov ax,1 ?
【解决方案2】:

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

常见问题解答

64 位 CPU 会在 64 位版本的操作系统上运行标准(32 位)程序吗? 是的,它会。 64 位系统向后兼容 32 位系统。

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

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

【讨论】:

    【解决方案3】:

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

    由于 80386+ 还可以使用操作数大小和地址大小前缀与 16 位 PM 组合来寻址高达 4 GB 的内存。

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

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

    [使用16]

    所以如果我们想在 16 位地址模式中使用 32 位操作数/地址,那么我们必须将这些前缀添加到我们的操作码中。如果没有这些前缀,我们只能使用 16 位。

    [use32]

    在 32 位地址模式中,我们发现了截然相反的情况,所以如果我们想使用 32 位操作数/地址,那么我们必须从我们的操作码中省略这些前缀,并且仅当我们想使用 16 位操作数/地址时,然后我们必须将这些前缀添加到我们的操作码中。

    如果我们小心地使用上面的这些尺寸指令(或类似的符号),那么我们的汇编器就会完成这项工作。

    Operand size prefix in 16-bit mode

    德克

    【讨论】:

      猜你喜欢
      • 2014-03-10
      • 1970-01-01
      • 1970-01-01
      • 2015-04-07
      • 2020-03-21
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 2019-10-04
      相关资源
      最近更新 更多