prinzdezibel
prinzdezibel

Reputation: 11147

How many bits is a WORD and is that constant over different architectures?

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?

Upvotes: 20

Views: 44500

Answers (9)

Guffa
Guffa

Reputation: 700152

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.

Upvotes: 40

Peter Miehle
Peter Miehle

Reputation: 6070

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.

Upvotes: 1

Jimmy J
Jimmy J

Reputation: 1985

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.

Upvotes: 1

Pete Kirkham
Pete Kirkham

Reputation: 49311

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.

Upvotes: 2

Pontus Gagge
Pontus Gagge

Reputation: 17258

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.

Upvotes: 1

RBerteig
RBerteig

Reputation: 43296

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...

Upvotes: 2

Nick
Nick

Reputation: 13414

16 bits (2 bytes) to a word is universal for x86.

Upvotes: 1

Vinay
Vinay

Reputation: 4783

It depends upon the machine architecture. This document explains some basics about this.

Upvotes: 3

Stack Overflow is garbage
Stack Overflow is garbage

Reputation: 247899

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)

Upvotes: 16

Related Questions