Слово, Двойное слово, Четыре слова - PullRequest
1 голос
/ 29 марта 2012

Это мой второй вопрос, один за другим. Это тоже проблема со сборкой (x86 - 32bit).

«Программирование с нуля» говорит, что 4 байта - это 32 бита, и это слово. Но в руководстве Intel по базовой архитектуре говорится, что слово - это 16 бит (2 байта), а 4 байта - это двойное слово. Память использует 4-байтовые слова, чтобы перейти к другому слову, мне нужно пропустить следующие 4 байта, для каждого слова я могу сделать 4 смещения (0-3) для чтения байта, так что это неправильно с именем Intel, но это определение памяти исходит от Intel ну и что там плохого?

А как действовать на словах, двойных словах, четырех словах в сборке? Как определить число как квадруполь?

Ответы [ 2 ]

5 голосов
/ 29 марта 2012

Чтобы ответить на ваш первый вопрос, размер слова процессора является функцией архитектуры.Таким образом, 32-процессор имеет 32-битное слово.В типах программного обеспечения, включая сборку, обычно необходимо однозначно определить размер, поэтому по историческим причинам тип слова является 16-разрядным.Поэтому, вероятно, оба источника верны, если вы читаете их в контексте: первый относится к слову процессора, а руководство Intel относится к типу слова.

0 голосов
/ 29 марта 2012

У нас есть разные «слова»: слова программы, слова памяти, слова ОС, слова архитектуры (слово пробела программы, слово флэш, слово eeprom), даже слова адреса.

Просто условно, к какому размеру относится слово word.

Я обычно нахожу размер слова, смотря на количество шестнадцатеричных цифр, которые контекст использует для их отображения. Наиболее распространенный тип Intel, 4 цифры (0x0000), составляет два байта.

И для дальнейшей информации, даже byte является соглашением. Во многих системах в прошлом байты были 7 или 9 битами. Большинство архитектур в настоящее время имеют 8-битные байты. Правильное имя для всегда 8-битной структуры - octet.

...