Сколько битов - это СЛОВО, и оно постоянно в разных архитектурах? - PullRequest
13 голосов
/ 07 марта 2009

Машина WORD всегда одинакова или зависит от архитектуры машины? И является ли значение слова WORD контекстно-зависимым или общеприменимым?

Ответы [ 9 ]

30 голосов
/ 07 марта 2009

Размер машинного слова зависит от архитектуры, а также от того, как приложение запускает операционная система.

Например, в Windows x64 приложение может быть запущено либо как 64-битное приложение (имеющее 64-битное слово mahine), либо как 32-битное приложение (имеющее 32-битное машинное слово). Таким образом, размер машинного слова может отличаться даже на одном компьютере.

Термин WORD имеет различное значение в зависимости от того, как он используется. Это может означать машинное слово или тип с определенным размером. В языке ассемблера x86 WORD, DOUBLEWORD (DWORD) и QUADWORD (QWORD) используются для размеров 2, 4 и 8 байтов независимо от размера машинного слова.

12 голосов
/ 07 марта 2009

Слово, как правило, является «собственным» размером данных ЦП. То есть на 16-битном процессоре слово равно 16 битам, на 32-битном процессоре - 32 и т. Д.

И, конечно, исключением является x86, где слово имеет ширину 16 бит (потому что x86 изначально был 16-битным процессором), DWORD - 32-битный (потому что он стал 32-битным процессором), и QWORD является 64-битным (потому что теперь к нему добавлены 64-битные расширения)

3 голосов
/ 07 марта 2009

Это зависит от архитектуры машины. Этот документ объясняет некоторые основы об этом.

2 голосов
/ 07 марта 2009

WORD - это специфичный для Windows 16-разрядный целочисленный тип , который не зависит от оборудования.

Если вы имеете в виду машинное слово, то кричать не нужно.

2 голосов
/ 07 марта 2009

Да.

Хорошо, позвольте мне быть немного яснее. Предполагая, что мы говорим о словах памяти, существует два широких определения.

Во-первых, слово часто представляет собой естественный размер отдельного элемента, к которому можно получить атомарный доступ в аппаратном обеспечении. Это очень сильно зависит от платформы, но обычно составляет 16, 32 или 64 бита, но другие размеры были найдены в дикой природе.

Во-вторых, он часто используется для обозначения 16-битного значения. В этом контексте вы увидите, что DWORD означает 32-битное значение. Такое использование распространено на платформах x86, особенно Windows, но также использовалось на DEC PDP-11 и VAX, а также на потомках Motorola 68000.

Информация о предполагаемом использовании зависит от контекста ...

1 голос
/ 07 марта 2009

«Слово» маленькими буквами зависит от архитектуры.

"WORD" прописными буквами, как определено в Windows SDK, составляет 16 бит

Аналогично: «DWORD» - (двойное слово) 32 бита. "QWORD" ... 64 бита.

1 голос
/ 07 марта 2009

Все вы, ребята, работаете над 32-битными и 64-битными версиями: знаете, были и есть другие архитектуры машин, кроме семейства x86 PDP-11 имел 40-битные слова, например.

Но самый простой ответ - просто поиск Википедия .

1 голос
/ 07 марта 2009

Насколько я понимаю, WORD - это количество битов, которое можно вставить в ЦП одним действием (на конкретной машине), поэтому в 8-битной архитектуре это 8 бит, а в современной 64-битной архитектуре составляет 64 бита.

1 голос
/ 07 марта 2009

16 бит (2 байта) к слову универсально для x86.

...