Понятие «слово» имеет несколько значений.В вопросе есть 3 значения:
- Общий термин «слово процессора» в контексте архитектур ЦП
- «Размер бита» программного обеспечения / ОС против «бита»size "of hardware
- Термин« все заглавные »
WORD
, означающий 16-битное значение - это часть API языка Windows« Win32 »C
При описанииОпределение типа Win32 WORD
, это также подходит:
- Концепция набора команд Intel / AMD для "Word", "Doubleword" и "Quadword"
Общий термин «слово процессора» в контексте архитектур ЦП
В общем / общем использовании «слово процессора» относится к размеру регистра процессора.Он также может относиться к размеру инструкции процессора или к размеру указателя (в зависимости от того, какая именно архитектура процессора).В простых случаях 32-битный процессор будет иметь 32-битный размер слова (и размер указателя).64-разрядный процессор будет иметь 64-разрядный размер слова (и размер указателя).
В этой статье о «слове процессора» есть статья из 1023 *, в которой подробно описываются все общие виды использования.термина и размеров для нескольких текущих и исторических архитектур ЦП.
«Размер бита» программного обеспечения / ОС против «размера бита» аппаратного обеспечения
«64-разрядный» ЦП и«64-битная» ОС необходима для запуска «64-битной» программы.Это, вероятно, очевидно.
«64-разрядное программное обеспечение» использует 64-разрядные инструкции (например, сложение 64-разрядных чисел или одновременное копирование 64-разрядных данных из регистра процессора в ОЗУ).Он также может использовать 64-битный размер указателя.Это означает, что вместо того, чтобы использовать максимум 4 гигабайта оперативной памяти (например, «32-битное программное обеспечение»), теоретически он может использовать около 17 миллиардов гигабайт оперативной памяти (16 эксабайт).
A »64бит "x64 / x86 CPU" может также запускать программное обеспечение "32 бит" (или даже "16 бит").Это может сделать это без каких-либо изменений в коде и без необходимости перестраивать программное обеспечение.Это связано с тем, что все старые инструкции ЦП все еще существуют на новых ЦП, и они обратно совместимы.
Эти понятия не совсем совпадают с общим понятием «слово процессора», но тесно связаны.
Примечание. Эта концепция начинает немного усложняться, когда вы говорите о более старых и более специализированных процессорах (особенно о старых игровых системах), но на самом деле вопрос был не о них, поэтому я не буду вдаваться в подробности.О них обычно говорят как о «64-битных» или «8-битных» системах, но правда немного сложнее, чем это.См. статью вики «Слово о процессоре», которую я связал выше , или статью о конкретной системе.
Конкретный контекст вопроса - WORD
, все заглавные буквы
Заглавные буквы и конкретные размеры в вопросе (16 бит для WORD
, на 32-битной ОС) подразумевают нечто иное, чем общий термин «процессорное слово».
В устаревшем программировании Windows (Win32 API), существует макрос, называемый WORD
, размер которого составляет 16 бит.Это имело смысл, когда процессоры были 16-битными.Однако даже если вы скомпилируете код, содержащий этот макрос, для 32-битной или 64-битной цели, он все равно будет 16-битным.DWORD
в Win32 API составляет 32 бита, а QWORD
- 64 бита.
Это связано с тем, что Microsoft действительно очень старается в своем Win32 API поддерживать обратную совместимость без необходимости вносить какие-либо изменения вкод.По большей части вы можете скомпилировать образцы Win32 из эпохи Windows 95 без изменений, и они будут работать точно так же и сегодня.
Скорее всего, Microsoft унаследовала эту схему именования от Intel (и, возможно, AMD).документация.
Концепция набора команд Intel / AMD "Слово", "Двойное слово" и т. д.
В документах Intel «Слово» (Win32 WORD
) составляет 16 бит. «Двойное слово» (Win32 DWORD
) составляет 32 бита. «Quadword» (Win32 QWORD
) составляет 64 бита. Названия соответствующих сборочных инструкций также отражают эту схему именования (например, MMX Добавить упакованные целые числа PADD
инструкции: PADDW
, PADDD
, PADDQ
).
В некоторых примерах вы можете проверить эту статью в Википедии о наборе команд x86 или руководств по разработке программного обеспечения Intel .
Эта схема именования не обязательно имеет смысл с точки зрения общей концепции «процессорного слова», поскольку эти концепции касаются только части регистра. Однако они имеют смысл с точки зрения создания стабильного интерфейса программирования для программ x86. Это большая часть того, почему вы можете использовать «32-битные» (и 16-битные) программы поверх «64-битных» ОС.