Слово. Полуслово. Двойное слово.
Если набор бит называется байтом, то как называется набор байт? Словом. Если байт может состоять из разного количества бит, то как обстоят дела со словами? Так же. Количество байт в слове зависит от типа процессора. В шестнадцати разрядных процессорах слово состоит из двух байт. В тридцати двух разрядных процессорах слово состоит из четырех байт. Двойное слово, как и следует из названия, содержит ровно в два раза больше байт, чем просто слово. Встает вопрос, как тогда называется набор из двух байт для тридцати двух разрядного процессора? От специалистов, пришедших в мир персональных компьютеров с больших ЭВМ, можно услышать термин — полуслово. Теперь перейду к конкретному типу процессора — Intel 80х86. Как Вы знаете, младшие модели этих процессоров были 16-разрядными, а начиная с 80386 стали 32-разрядными. Несмотря на это, фирма Intel сохранила терминологию 16-разрядных моделей. В официальной документации на процессоры Intel словом, или коротким словом, называется набор из 2 байт, то есть 16 разрядов. Это верно даже для Pentium. Набор из 4 байт, или 32 разряда, называется двойным словом, или длинным словом. Очевидно, что это сделано для единства терминологии, независимо от конкретной модели. Хотя вопрос спорнный.

Формат длинного слова (с точки зрения Intel) показан на рисунке 5. Для представления отрицательных чисел используется дополнительный код, как и в случае байта. Теперь рассмотрим порядок байт в слове, а точнее, порядок байт в слове, хранящемся в оперативной памяти. Суть вот в чем. Процессор, а следовательно и написанная Вами программа, может получить доступ как к слову в целом, так и к каждому из составляющих его байт в отдельности. Сразу возникают вопросы. Адрес какого байта, составляющего слово, будет считаться адресом слова? Если известен адрес слова, то какой адрес будет, например, у младшего или старшего байта? Это зависит от типа процессора. Например длинное слово 14AFB820, состоящее из 4 байт, может храниться в таком порядке: 20, B8, AF, 14. А может и в таком: 14, AF, B8, 20. Это имеет значение, если Вам надо, например, преобразовать длинное слово в два коротких, или наоборот. Это имеет значение, если Вам надо обмениваться информацией с компьютерами, собранными на процессоре другого типа, например PC и Mac, PC и ЕС ЭВМ, PC и специализированный вычислитель. В процессорах Intel слова хранятся в памяти начиная с младшего байта, и за адрес слова принимается адрес младшего байта. То есть короткое слово 53C6 в памяти хранится так: С6, 53. А длинное слово 14AFB820 так: 20, B8, AF, 14.
В беззнаковом слове можно хранить числа от 0 до 65535, в двойном слове от 0 до 4294967295. В слове со знаком можно хранить числа от -32768 до 32767, в двойном слове от -2147483648 до 2147483647.
Операции со словами.Все операции, которые можно выполнять над байтами, применимы и к словам. Однако существуют операции, которые трудно отнести к конкретному формату данных. Это операции преобразования байта в слово, слова в двойное слово, и им подобные. Эти операции я так же рассмотрю здесь.
Операция ИНВЕРСИИ СЛОВА (NOT). Полностью идентична операции ИНВЕРСИЯ БАЙТА.
Операция ДВОИЧНОЕ ДОПОЛНЕНИЕ СЛОВА (NEG). Полностью идентична операции ДВОИЧНОЕ ДОПОЛНЕНИЕ БАЙТА.
Операция ПОРАЗРЯДНОГО ЛОГИЧЕСКОГО И (AND). Полностью идентична операции ПОРАЗРЯДНОЕ ЛОГИЧЕСКОЕ И для байт.
Операция ПОРАЗРЯДНОГО ЛОГИЧЕСКОГО ИЛИ (OR). Полностью идентична операции ПОРАЗРЯДНОЕ ЛОГИЧЕСКОЕ ИЛИ для байт.
Операция ПОРАЗРЯДНОГО ИСКЛЮЧАЮЩЕГО ИЛИ (XOR). Полностью идентична операции ПОРАЗРЯДНОЕ ИСКЛЮЧАЮЩЕЕ ИЛИ для байт.
Операция ПОРАЗРЯДНОГО ВЗЯТИЯ ПО МОДУЛЮ 2 (М2). Полностью идентична операции ПОРАЗРЯДНОЕ ВЗЯТИЕ ПО МОДУЛЮ 2 для байт.
Операция СЛОЖЕНИЯ (ADD). Полностью идентична операции СЛОЖЕНИЯ для байт.
Операция ВЫЧИТАНИЯ (SUB). Полностью идентична операции ВЫЧИТАНИЯ для байт.
Операция ИНКРЕМЕНТА (INC). Полностью идентична операции ИНКРЕМЕНТА для байт.
Операция ДЕКРЕМЕНТА (DEC). Полностью идентична операции ДЕКРЕМЕНТА для байт.
Операция УМНОЖЕНИЯ (MUL). Полностью идентична операции УМНОЖЕНИЯ для байт.
Операция ДЕЛЕНИЯ (DIV). Полностью идентична операции ДЕЛЕНИЯ для байт.
Операции ЛОГИЧЕСКИХ СДВИГОВ ВПРАВО (SHR) И ВЛЕВО (SHL). Полностью идентичны операциям ЛОГИЧЕСКИХ СДВИГОВ ВПРВО И ВЛЕВО для байт.
Операции АРИФМЕТИЧЕСКИХ СДВИГОВ ВПРАВО (SAR) И ВЛЕВО (SAL). Полностью идентичны операциям АРИФМЕТИЧЕСКИХ СДВИГОВ ВПРАВО И ВЛЕВО для байт.
Операции ЦИКЛИЧЕСКИХ СДВИГОВ ВПРАВО (ROR), ВЛЕВО (ROL), ВПРАВО ЧЕРЕЗ ПЕРЕНОС (RCR), ВЛЕВО ЧЕРЕЗ ПЕРЕНОС (RCL). Полностью идентичны операциям ЦИКЛИЧЕСКИХ СДВИГОВ для байт.
Операции ПРЕОБРАЗОВАНИЯ БАЙТА В СЛОВО, СЛОВА В ДВОЙНОЕ СЛОВО, ДВОЙНОГО СЛОВА В СЛОВО, СЛОВА В БАЙТ.Преобразование байта в слово мы уже рассматривали, когда разбирались с делением байтов. Там же было упомянуто другое название этой операции, расширение знака. Преобразуемый байт помещается на место младшего байта слова, каждый бит старшего байта слова принимает значение знакового бита преобразуемого байта. Проще это звучит так, в старший байт слова заносится 11111111 если в исходном байте хранится отрицательное число, и 00000000, если положительное. Абсолютно так же выполняется операция преобразования слова в двойное слово, только знаковый бит в этом случае распространяется на старшее слово. Заметим, что расширение знака имеет смысл только для знаковых данных. Для беззнаковых достаточно заполнить старшый байт или слово нулями. В процессорах Intel 80х86 для этих операций есть специальные команды.
Преобразование слова в байт выполняется отбрасыванием старшего байта. Для беззнаковых данных, условием корректности операции является равенство старшего байта 0. Для знаковых данных, все биты старшего байта и знаковый бит младшего должны иметь одинаковое значение, иначе изменится знак результата. Преобразование двойного слова в слово выполняется аналогично.
Вот пожалуй и все, что можно сказать о словах и операциях с ними. Большая часть машинных типов данных нами уже пройдена. Осталось разобраться с машинным представлением чисел с плавающей запятой. Представление адресов и адресную арифметику я рассмотрю в другой статье.
Представление информации в ЭВМ
К основным типам данных (информации), с которыми оперирует ЭВМ можно отнести:
- · Числа.
- · Символы.
- · Логические значения.
- · Массивы (чисел, символьных строк, списочные).
- · Графика.
- · Звук.
- · Видео.
Вне зависимости от типа данных ЭВМ имеет дело исключительно с их двоичным представлением или кодированием. Т.е. в ЭВМ любые данные преобразуются в кодовые последовательности двоичных цифр.
Различные виды информации имеют свои правила кодирования. Коды отдельных значений, относящиеся к различным видам информации, могут совпадать. Поэтому расшифровка кодированных данных осуществляется по контексту при выполнении команд программы.
В ЭВМ используются три вида чисел: двоичные числа с фиксированной запятой (точкой), с плавающей запятой и двоично-кодированные (восьмеричные, шестнадцатеричные, двоично-десятичные) числа.
Во всех современных компьютерах важную роль играет представление данных группами по 8 бит называемых байтами. Байт содержит одну из 2=256 комбинаций двоичных символов.
По существу, байт стал стандартной базовой единицей, из которой образуются все остальные единицы машинных данных. В зависимости от того, как интерпретируется содержимое байта, оно может быть: числом, кодированным представлением символа внешнего алфавита, частью команды или более сложной единицей данных. Другими словами интерпретацию байта определяет программист в зависимости от контекста своей программы.
В подавляющем большинстве компьютеров (ЭВМ), принята нумерация битов в байте справа налево.
Единица данных, состоящая из 16 бит или двух байт, называется словом.
Слово
Слово может содержать любую из 2=65536 комбинаций. По аналогии с нумерацией бит, байты в слове также нумеруются справа налево, начиная с нуля: байт 0 называется младшим, а байт 1-старшим байтом.
Следующая единица данных состоит из 4-х байтов и называется двойным словом.
Двойное слово
Число возможных комбинаций в двойном слове составляет 2=1048576.
Следующая из рассматриваемых единица данных состоит из 64 бит или 8 байт и называется квадро (длинное слово).
Квадро-слово
Еще одной единицей представления данных, применяемой в современных ЭВМ, является октослово.
Откослово
Октослово состоит из 16 байт.
Основная или базовая единица данных, с которой оперирует процессор (микропроцессор), называется машинным словом. Практически во всех современных процессорах длина машинного слова кратна байту. Длина слова является важнейшей характеристикой процессора и в соответствии с ней процессоры подразделяются на 8-, 16-, 32-, 64-, 128-битные.
Машинное слово, каков его размер?
Есть понятие «машинного слово», я читала об этом, но везде пишут по разному, на сколько я понимаю одно машинное слово равно 2 байта, а двойное машинное слово 4 байта, но откуда оно берётся, почему 2 байта а не один? То есть как я понимаю если процессор 32-битный он может за один такт принять и обработать с оперативной памяти 32 бита информации, а это 4 байта значит у него должно быть одно слово 4 байта ну а 64-х битный в 2 раза больше и его слово будет больше?
Думаю, вся путаница возникла из-за того, что когда то разработчики Интела (я так думаю) назвали два байта — словом (word) — тогда 16 битные процессоры были прорывом. Соответственно, 4 байта — двойным словом. (DWORD, double word). Это сохранилось и в многих языках программирования (в том числе в с/с++). Почему два байта — слово? да видимо от того, что байт это как буква. А две буквы — это уже слово. (Хотя сейчас прибегут филологи и скажут, что это скорее всего слог, чем слово). В википедии есть хорошая фраза «* Для 32-битных процессоров x86: исторически машинным словом считается 16 бит, реально — 32 бита.»
А вот словосочетание «двойное машинное слово» я никогда не слышал. Даже гугл мало находит статей с таким сочетанием. А вот «двойное слово» или «машинное слово» — это нормально.
То есть как я понимаю если процессор 32-битный он может за один такт принять и обработать с оперативной памяти 32 бита информации
не все так просто. Далеко не факт, что он может даже принять 32 бита. Современные процессоры сложные, имеют кеш. Имеют сложные комманды, которые за один раз (не так, а именно раз) могут обработать до 16 байт памяти (всякие mmx и sse).
Обычно, машинным словом называют «разрядность процессора», так как разрядность обычно показывает оптимальный размер данных внутри процессора (регистры 32битного процессора 32 битные и с 32битными данными в основном все команды и работают). В некоторых процессорах слово было 60 бит:)
В любом случае рекомендую всегда всматриваться в контекст. Если о «слове» говорит программист на С/С++ — это 16 бит, если программист на ассемблере под 32 битные ARM процессоры — то скорее всего слово — это 32 бита.
Двойное слово сколько байт
Минимальная единица информации называется битом . Бит может принимать только два значения — обычно 0 и 1. На самом деле эти значения совершенно необязательны — один бит может принимать значения «да» и «нет», показывать присутствие и отсутствие жесткого диска, является ли персонаж игры магом или воином — важно лишь то, что бит имеет только два значения. Но далеко не все величины принимают только два значения, а значит, для их описания нельзя обойтись одним битом.
Единица информации размером восемь бит называется байтом . Байт — это минимальный объем данных, который реально может использовать компьютерная программа. Даже чтобы изменить значение одного бита в памяти, надо сначала считать байт, содержащий его. Биты в байте нумеруют справа налево, от нуля до семи, нулевой бит часто называют младшим битом, а седьмой — старшим.
Так как всего в байте восемь бит, байт может принимать до 2 8 = 256 разных значений. Байт используют для представления целых чисел от 0 до 255 (тип unsigned char в С), целых чисел со знаком от -128 до +127 (тип signed char в С), набора символов ASCII (тип char в С) или переменных, принимающих менее 256 значений, например для представления десятичных чисел от 0 до 99. Следующий по размеру базовый тип данных — слово . Размер одного слова в процессорах Intel — два байта.
Биты с 0 по 7 составляют младший байт слова, а биты с 8 по 15 — старший . В слове содержится 16 бит, а значит, оно может принимать до 2 16 = 65 536 разных значений. Слова используют для представления целых чисел без знака со значениями 0 — 65 535 (тип unsigned short в С), целых чисел со знаком со значениями от -32 768 до +32 767 (тип short int в С), адресов сегментов и смещений при 16-битной адресации. Два слова подряд образуют двойное слово , состоящее из 32 бит, а два двойных слова составляют одно учетверенное слово (64 бита). Байты, слова и двойные слова — основные типы данных, с которыми мы будем работать.