Is a machine WORD always the same or does it depend on the machine architecture? And is the meaning of the word WORD context sensitive or generally applicable?
The machine word size depends on the architecture, but also how the operating system is running the application.
In Windows x64 for example an application can be run either as a 64 bit application (having a 64 bit mahine word), or as a 32 bit application (having a 32 bit machine word). So the size of a machine word can differ even on the same machine.
The term WORD
has different meaning depending on how it's used. It can either mean a machine word, or a type with a specific size. In x86 assembly language WORD
, DOUBLEWORD
(DWORD
) and QUADWORD
(QWORD
) are used for 2, 4 and 8 byte sizes, regardless of the machine word size.
A word is typically the "native" data size of the CPU. That is, on a 16-bit CPU, a word is 16 bits, on a 32-bit CPU, it's 32 and so on.
And the exception, of course, is x86, where a word is 16 bit wide (because x86 was originally a 16-bit CPU), a DWORD is 32-bit (because it became a 32-bit CPU), and a QWORD is 64-bit (because it now has 64-bit extensions bolted on)
It depends upon the machine architecture. This document explains some basics about this.
Yes.
Ok, let me be a bit clearer. Assuming we are talking about words of memory, there are two broad definitions.
First, a word is often the natural size of a single item that can be accessed atomically in the hardware. That is very much a platform dependent size, but is usually 16, 32, or 64 bits, but other sizes have been found in the wild.
Second, it is often used to specifically mean a 16-bit value. In that context, you will see DWORD used to mean a 32-bit value. This usage is common on x86 platforms, especially Windows, but was used on DEC PDP-11 and VAX, and Motorola 68000 descendants as well.
Telling which is the intended usage depends on context...
WORD
is a Windows specific 16-bit integer type, and is hardware independent.
If you mean a machine word, then there's no need to shout.
16 bits (2 bytes) to a word is universal for x86.
All you youngsters yappin' on about 32 bit thiss and 64 bit that: you know, there were and are other machine architectures than the x86 family. A PDP-11 had 40-bit words, f'rinstance.
But the simplest answer is just to search Wikipedia.
A "word" in small letters depends on the architecture.
A "WORD" in capital letters, as defined in Windows SDK, is 16 bits.
Similarly: "DWORD" - (double word) 32 bits. "QWORD" ... 64 bits.
My understanding is that a WORD is the amount of bits that can be shoved into the CPU with one action (on a particular machine), so in a 8bit-architecture it is 8 bits and on a modern 64-bit architecture it is 64 bits.
来源:https://stackoverflow.com/questions/621657/how-many-bits-is-a-word-and-is-that-constant-over-different-architectures