В процессе работы МПр используют данные и команды языка программирования низкого уровня различных форматов.
Под форматом понимается способ представления информации в двоичной форме для хранения и обработки в памяти УУ, где значение и номер позиции бита в ряду последовательно расположенных бит имеет содержательное значение. В первую очередб формат характеризуется длиной – количеством разрядов или бит в слове. Длина слова данных и команд должна соответствовать возможностям микропроцессора с одной стороны и возможностям операционной системы с другой стороны. Как правило, разрядность микропроцессора, превосходит или равна соответствующим возможностям операционной системы и программного обеспечения управления средства связи. С точки зрения разрядности, МПр может поддержать следующие основные типы данных:
Байт – восемь последовательно расположенных бит;
Слово – два байта, имеющих последовательные алреса. Слово делится на младший байт и старший. Младший байт всегда хранится по меньшему адресу, который является адресом слова.
Существует также двойное слово – четыре байта, расположенных по последовательным адресам памяти. Двойное слово состоит из младшего слова и старшего слова. Младшее слово хранится по меньшему адресу памяти, который является адресом двойного слова. Иногда используется учетверенное слово данных – восемь байт, расположенных по последовательным адресам. Учетверенное слово делится на младшее двойное слово и старшее двойное слово. Младшее двойное слово хранится по меньшему адресу, который является адресом учетверенного слова.
В некоторых случаях применяется 128-битный упакованный тип данных – формат, который впервые появился в МПр Pentium III. Для работы с упакованным типом данных были введены специальные команды. Общее описание форматов перечисленных типов данных см. рис.1.
Рис.1 – Примеры форматов данных МПр
Приведенные форматы данных позволяют поддержать следующие логические данные:
Целое число со знаком (см. рис.2). Максимальное значение такого числа равно
Рис.2 – Формат целого числа со знаком
Основные значения целых чисел со знаком приведены в таблице 1.
Таблица 1 – Диапазоны целых чисел со знаком.
Размерность, бит
Без знака
Со знаком
0 … 255
- 128 … + 128
0 … 65 535
- 32 768 … + 32 767
0 … 4 294 967 295
- 2 147 483 648 … + 2 147 483 648
Логический «0» в начале формата на рис.2 означает положительное число; логическая «1» в начале формата на рис.2 означает отрицательное число. Для данных размерности 64 бита диапазон возможных значений составляет . Логический полноразрядный код см. на рис.3:
Рис.3 – Формат логического кода
К логическому полноразрядному коду относится т.н. битовое поле – непрерывная последовательность бит. Каждый бит является независимым и может рассматриваться как отдельная переменная. Логический код также можно использовать при представлении чисел в виде:
Неупакованный двоично-десятичный тип – байтовое представление десятичной цифры от 0 до 9. числа хранятся как байтовые значения без знака по одной цифре в каждом байте (в младшей тетраде);
Упакованный двоично-десятичный тип – представление двух десятичных цифр от 0 до 9. каждая цифра хранится в своей тетраде (цифра старшего разряда – в старшей тетраде, цифра младшего разряда – в младшей тетраде).
Тип данных с плавающей точкой – специальные типы данных для обработки чисел с плавающей точкой в математическом сопроцессоре. Математический сопроцессор – сопроцессор, выполняющий операции над числами, представленными в форме с плавающей точкой. Сопроцессор – вспомогательный процессор, предназначенный для выполнения математических и логических действий, не входящих в стандартный набор команд ЦПУ.
Формат числа с плавающей точкой (вещественные числа) приведен на рис.4:
Рис.4 – Формат чисел с плавающей точкой
Диапазон возможных значений вещественных чисел приведен в таблице 2:
Таблица 2 – Диапазон значений вещественных чисел
Кроме приведенных двух основных форматов, данные могут записываться в виде формата «кусок» данных или «фрагмента данных» (см.рис.4):
Рис.4 – Формат «куска» данных
Для работы с «куском» или фрагментом необходимо указать начало «куска». «Куском» или фрагментом могут являться целые числа или логически полноразрядный код.
Еще одним способом предоставления данных является массив данных. Под массивом данных понимается упорядоченная совокупность слов данных или команд, которые располагаются в смежных ячейках ЗУ. Массивы данных содержат тематически близкую информацию, например, данные о состоянии абонентских комплектов, данные о состоянии межстанционных линий, при этом схема массива данных имеет вид (см.рис.5):
Рис.5 – Формат массива данных
Применительно к массиву может использоваться относительная адресация, при которой абсолютный адрес (АА) ячейки памяти рассчитывается как начальный адрес массива плюс сдвиг: АА=НАМ + «сдвиг», где «сдвиг» - это целое число. В дальнейшем начальный адрес массива А1 также именуется «базовым адресом». Средства связи чаще всего работают с массивами данных и обрабатывают числа с фиксированной точкой. Исключение составляют цифровые сигнальные процессоры в составе кодеров, систем сжатия изображений и т.п. В частности, для повышения качества обработки данных ПЦОС могут работать с плавающей точкой. Рассмотрим далее основные форматы и системы команд современного микропроцессора.