18

机器WORD总是相同还是取决于机器架构?单词WORD的含义是上下文敏感的还是普遍适用的?

4

9 回答 9

35

机器字长取决于架构,还取决于操作系统运行应用程序的方式。

例如,在 Windows x64 中,应用程序可以作为 64 位应用程序(具有 64 位机器字)或 32 位应用程序(具有 32 位机器字)运行。因此,即使在同一台机器上,机器字的大小也可能不同。

该术语WORD具有不同的含义,具体取决于它的使用方式。它可以表示机器字,也可以表示具有特定大小的类型。在 x86 汇编语言中WORDDOUBLEWORD( DWORD) 和QUADWORD( QWORD) 用于 2、4 和 8 字节大小,而与机器字长无关。

于 2009-03-07T10:53:24.963 回答
13

一个字通常是 CPU 的“本机”数据大小。也就是说,在 16 位 CPU 上,一个字是 16 位,在 32 位 CPU 上,它是 32 位,依此类推。

当然,x86 是个例外,其中一个字是 16 位宽(因为 x86 最初是一个 16 位 CPU),一个 DWORD 是 32 位(因为它变成了一个 32 位 CPU),而一个 QWORD 是64 位(因为它现在有 64 位扩展)

于 2009-03-07T10:50:17.670 回答
3

这取决于机器架构。文档解释了有关此的一些基础知识。

于 2009-03-07T10:50:23.333 回答
2

是的。

好的,让我更清楚一点。假设我们谈论的是记忆词,有两个广义的定义。

首先,一个词通常是可以在硬件中原子访问的单个项目的自然大小。这很大程度上取决于平台的大小,但通常是 16、32 或 64 位,但在野外也发现了其他大小。

其次,它通常用于专门表示 16 位值。在这种情况下,您将看到 DWORD 用于表示 32 位值。这种用法在 x86 平台上很常见,尤其是 Windows,但也用于 DEC PDP-11 和 VAX,以及摩托罗拉 68000 的后代。

判断哪个是预期用途取决于上下文......

于 2009-03-07T10:54:19.313 回答
2

WORDWindows 特定的 16 位整数类型,并且与硬件无关。

如果您的意思是机器词,则无需大喊大叫。

于 2009-03-07T10:57:20.633 回答
1

一个字的 16 位(2 个字节)对于 x86 来说是通用的。

于 2009-03-07T10:50:56.187 回答
1

我的理解是,一个 WORD 是可以通过一个动作(在特定机器上)推入 CPU 的位数,因此在 8 位架构中它是 8 位,而在现代 64 位架构中它是 64 位.

于 2009-03-07T10:51:34.640 回答
1

你们这些年轻人都在谈论 32 位 this 和 64 bit that:你知道,除了 x86 系列之外,还有其他机器架构。例如,PDP-11 有 40 位字。

但最简单的答案就是搜索Wikipedia

于 2009-03-07T10:56:41.647 回答
1

小写字母的“单词”取决于架构。

Windows SDK 中定义的大写字母“WORD”为 16 位。

类似地:“DWORD”-(双字)32 位。"QWORD" ... 64 位。

于 2009-03-07T10:58:53.983 回答