2009-03-07 6 views
11

Ist eine Maschine WORD immer gleich oder hängt es von der Maschinenarchitektur ab? Und ist die Bedeutung des Wortes WORD kontextsensitiv oder allgemein anwendbar?Wie viele Bits ist ein WORD und ist diese Konstante über verschiedene Architekturen?

+1

In WinAPI sprechen, ist Word immer noch auf 16-Bit-Windows und damit 16-Bit, auch auf Architekturen mit einer großen Maschinengröße festgelegt. Im Allgemeinen ist Word in Windows HLL-Programmen also 16-Bit, also ist es definitiv kontextsensitiv. Wie Guffa bereits sagt, gibt es im x86-Assembler immer noch dieselben 16-Bit-Tismen. –

Antwort

23

Die Maschinenwortgröße hängt von der Architektur ab, aber auch davon, wie das Betriebssystem die Anwendung ausführt.

In Windows x64 zum Beispiel kann eine Anwendung entweder als 64-Bit-Anwendung (mit einem 64-Bit-Mahine-Wort) oder als 32-Bit-Anwendung (mit einem 32-Bit-Maschinenwort) ausgeführt werden. So kann die Größe eines Maschinenworts sogar auf der gleichen Maschine abweichen.

Der Begriff WORD hat je nachdem, wie er verwendet wird, unterschiedliche Bedeutungen. Es kann entweder ein Maschinenwort oder ein Typ mit einer bestimmten Größe sein. In der x86-Assemblersprache WORD, DOUBLEWORD (DWORD) und QUADWORD (QWORD) werden für Größen von 2, 4 und 8 Byte verwendet, unabhängig von der Maschinenwortgröße.

10

Ein Wort ist normalerweise die "native" Datengröße der CPU. Das heißt, bei einer 16-Bit-CPU ist ein Wort 16 Bit, bei einer 32-Bit-CPU 32 usw.

Und die Ausnahme ist natürlich x86, wo ein Wort 16 Bit breit ist (weil x86 ursprünglich eine 16-Bit-CPU war), ein DWORD ist 32-Bit (weil es eine 32-Bit-CPU wurde), und ein QWORD ist 64-Bit (weil es jetzt 64-Bit-Erweiterungen angeschraubt hat)

+2

Sie meinen, ich kann QWORD nicht auf 32-Bit-Maschine überhaupt verwenden? – selurvedu

+2

@selurvedu Alter Kommentar, aber für Leute, die in der Zukunft darauf stoßen können; das kannst du wahrscheinlich. Intel-Prozessoren haben tendenziell 64-Bit-MMX-Register, die es Ihnen ermöglichen, QWORDs zu verwenden, und Sie können 64-Bit-Daten immer aus dem Speicher lesen/schreiben (unter Berücksichtigung der Endianz). –

+0

In Bezug auf @ SomeGuy's Punkt über Endianess ist [dieser Beitrag] (https://stackoverflow.com/q/7865511/2636454) hilfreich, um das zu verstehen. – GDP2

3

Es hängt von der Maschinenarchitektur ab. This Dokument erklärt einige Grundlagen dazu.

1

16 Bits (2 Bytes) zu einem Wort ist universal für x86.

0

Mein Wissen ist, dass ein WORT ist die Menge der Bits, die mit einer Aktion (auf einer bestimmten Maschine) in die CPU geschoben werden kann, so in einer 8bit-Architektur ist es 8 Bits und auf einer modernen 64-Bit-Architektur es ist 64 Bits.

+1

In 8-Bit-Land hätten wir nie das Wort gesagt, wenn wir Byte bedeuteten. Eine übliche Definition von Wort war einfach "zwei Bytes", sogar auf Systemen mit 9-Bit-Bytes und 18-Bit-Wörtern. Hier kommt der PDP-10 in den Sinn ... – RBerteig

2

Ja.

Ok, lassen Sie mich etwas klarer sein. Vorausgesetzt, wir sprechen über Wörter der Erinnerung, gibt es zwei breite Definitionen.

Erstens ist ein Wort oft die natürliche Größe eines einzelnen Elements, auf das in der Hardware atomar zugegriffen werden kann. Das ist eine plattformabhängige Größe, ist aber normalerweise 16, 32 oder 64 Bits, aber andere Größen wurden in freier Wildbahn gefunden.

Zweitens wird es oft verwendet, um speziell einen 16-Bit-Wert zu bedeuten. In diesem Zusammenhang wird DWORD für einen 32-Bit-Wert verwendet. Diese Verwendung ist auf x86-Plattformen üblich, insbesondere Windows, wurde aber auch bei DEC PDP-11 und VAX sowie bei Motorola 68000-Nachkommen verwendet.

Telling, die die beabsichtigte Verwendung geeignet ist, hängt vom Kontext ...

1

Alle Sie Jugendlichen yappin' auf etwa 32 Bit und 64-Bit thiss, dass: Sie wissen, gab und gibt es andere Maschinenarchitekturen als die x86-Familie. Ein PDP-11 hatte z. B. 40-Bit-Wörter.

Aber die einfachste Antwort ist nur zu suchen Wikipedia.

+0

Wer vermisst einen Sinn für Humor oder muss Reputationspunkte loswerden? Viel Spaß, so oder so. –

+0

Der PDP-11 hatte 16-Bit-Wörter. Der PDP-10 (DEcSystem-10) hatte 36-Bit-Wörter. Ich kenne keine DEC-Architektur mit 40-Bit-Wörtern, aber sie hatten so viele! –

+0

PDP-11s (zumindest die mit RT-11, aber ich denke, dass es auch in anderen DEC-Betriebssystemen verwendet wurde) verwendeten einen seltsamen Zeichensatz, der als Rad50 bekannt war, der es einem 6.3-Dateinamen erlaubte, in drei Wörter mit drei Zeichen zu passen Wort. DEC mochte schrullige Daten packen ;-) (Ich habe eine laufende PDP-11 in meinem Büro.) – RBerteig

1

Ein "Wort" in Kleinbuchstaben hängt von der Architektur ab.

Ein "WORD" in Großbuchstaben, wie in Windows SDK definiert, ist 16 Bit.

Ebenso: "DWORD" - (Doppelwort) 32 Bits. "QWORD" ... 64 Bits.