- •2.4 Выполнение арифметических операций в микропроцессорных
- •1 Основные сведения об информационно-измерительных системах
- •1.1 Место информационно-измерительных систем в современной измерительной технике и информационных технологиях
- •1.2 Классификация иис
- •1.3 Принципы организации и основные структурные схемы иис
- •1.3.1 Измерительные системы
- •1.3.2 Телеизмерительные системы
- •1.3.3 Системы автоматического контроля
- •1.3.4 Системы технической диагностики
- •1.4 Функции микропроцессоров в иис
- •1.5 Преимущества микропроцессорных измерительных систем
- •2 Базовые понятия и определения микропроцессорной арифметики
- •2.1 Системы счисления
- •2.1.1 Классификация систем счисления
- •1. Табличные методы.
- •2. Расчетные методы.
- •2.2 Представление числовых данных в микропроцессорных системах
- •Обратный код.
- •2.2.1 Арифметические флажки
- •2.2.2 Контроль переполнения в микропроцессорных системах
- •2.3 Выполнение арифметических операций в микропроцессорных системах над двоичными числами с фиксированной точкой
- •2.3.3 Операции сдвига в микропроцессорных системах
- •2.4 Выполнение арифметических операций в микропроцессорных системах над числами с плавающей точкой
- •2.4.2 Форматы двоичных числовых данных с плавающей точкой
- •2.4.3 Стандарт ieee-754
- •2.4.5 Сложение и вычитание чисел в форме с плавающей точкой
- •2.4.6 Умножение и деление чисел в форме с плавающей точкой
- •2.5 Представление числовых данных в коде bcd
- •2.5.1 Форматы числовых данных bcd-кодов
- •2.5.2 Арифметические операции над числовыми данными bcd-кодов
- •3 Основы микропроцессорных метрологических систем
- •3.1 Архитектурные особенности вычислительных систем на базе микропроцессора і80х86 в реальном режиме
- •3.1.1 Исследование сегментной структуры программы
- •3.2 Изучение арифметических и логических команд мп і80х86
- •3.2.1 Изучение принципов логического анализа данных
- •3.2.2 Изучение арифметических команд мп і80х86
- •3.3 Обработка массивов на языке Assembler для мп і80х86
- •3.3.2 Команды сравнения, условного и безусловного перехода
- •3.3.3 Оператор цикла
- •3.4 Исследование принципов организации подпрограмм в языке Аssembler для мп і80х86
- •3.4.1 Принципы функционирования стека в мп і80х86
- •3.5 Изучение принципов функционирования микропроцессоров со стековой архитектурой на примере математического сопроцессора і80х87
- •3.5.2 Архитектура математического сопроцессора і80х87
- •Задание:
- •Приложение е. Программа для изучения принципов обработки массивов на языке assembler для мп і80х86
- •Приложение и. Программа для исследования системы команд математического сопроцессора
2.4.2 Форматы двоичных числовых данных с плавающей точкой
Формат данных с
плавающей точкой (рис. 2.57),
использовавшийся в микропроцессорных
системах первых поколений, включал
четыре поля, а именно: указанные ранее
поля для мантиссы и ее знака (длиной
разряд), а также два дополнительных поля
для порядка и его знака (длиной
разряд).
Рисунок 2.57 – Классический формат данных с плавающей точкой
В отличие от рассмотренного выше классического формата, в современных микропроцессорных системах используют смещенный порядок, т.е. порядок, представленный в смещенном коде.
Смещенный порядок
представляет собой целое беззнаковое
число, равное истинному порядку,
увеличенному на некоторое значение
смещения.
Такой прием устраняет необходимость использования знака порядка, давая возможность манипулировать порядками как целыми беззнаковыми числами.
,
где – некоторая константа (смещение).
Если
,
то
.
Если
,
то такой смещенный код называют кодом
с положительным нулем. Для перехода от
смещенного кода к дополнительному
достаточно проинвертировать знаковый
бит.
Широко применяются смещенные коды с
отрицательным нулем, когда
.
При сложении и вычитании смещенных
порядков результирующий порядок также
должен быть смещенным.
При использовании смещенных кодов с отрицательным нулем сложение порядков выполняется в соответствии с правилом:
,
где
– смещенный порядок с инвертированным
старшим разрядом.
В этом случае может возникать как
положительное, так и отрицательное
переполнение. Если во втором слагаемом
старший разряд
был инвертирован в
,
а при сложении возник перенос
,
то имеет место переполнение порядка.
Результат оказывается за пределами
представления. Признаком получения
отрицательного переполнения
(антипереполнения) является
отсутствие переноса
из старшего разряда суммы при условии,
что во втором слагаемом старший разряд
из
был инвертирован в
.
При вычитании смещенных порядков для получения смещенного порядка разности необходимо выполнить следующее действие:
,
где – инверсное значение смещенного порядка с инвертированным старшим разрядом.
2.4.3 Стандарт ieee-754
К настоящему времени разработаны многочисленные варианты форматов чисел с плавающей точкой и практической реализации арифметических устройств с плавающей точкой. Это, в свою очередь, создает трудности при написании переносимых программ, согласовании правил обработки числовых данных и т.д.
Поэтому был разработан международный стандарт IEEE-754, нормам которого должны удовлетворять практически все вновь разрабатываемые микропроцессорные системы. Указанный стандарт решает следующие задачи:
упорядочивает форматы чисел с плавающей точкой;
унифицирует реакции на особые случаи в процессе обработки;
определяет требования к точности вычислений.
В соответствии со стандартом IEEE–754
определены два базовых и два расширенных
формата. Во всех форматах используется
смещенный код порядка. Мантисса имеет
старший разряд
с весом
,
относящийся к целой части. Поэтому
условие нормализации изменяется:
.
Базовый одинарный формат (БОФ) – имеет длину в 32 разряда. Поле порядка в этом формате содержит 8 разрядов, а смещение равно 127.
Максимальный положительный порядок
числа здесь равен
,
минимальный отрицательный
.
Базовый двойной формат (БДФ) – имеет одноразрядное знаковое поле, 11-разрядное поле смещенного порядка и 52-разрядное поле мантиссы.
Смещение здесь
равно 1023. Особенность двух указанных
форматов заключается в том, что минимальный
и максимальный смещенные порядки
зарезервированы для представления
специальных чисел. Поля мантисс в явном
виде не содержат разряда
,
так как в памяти должны храниться
нормализованные мантиссы чисел, а
значит, их старший разряд всегда равен
.
При передаче числа из памяти в процессор
этот «неявный» разряд становится
«явным», и в операциях участвует
24-разрядная
или 56-разрядная
мантисса.
Расширенный одинарный формат (РОФ) – не имеет жестко фиксированных параметров, однако для конкретных реализаций он устанавливается, исходя из следующих требований:
наличие одноразрядного знакового поля;
наличие явного или скрытого разряда в мантиссе;
длина мантиссы не менее 31 разряда;
диапазон значений порядка -1023... +1024.
Расширенный двойной формат (РДФ) – отличается от одинарного тем, что диапазон порядка составляет -16383...+16384, а поле мантиссы – не менее 63 разрядов. В качестве примера практической реализации форматов стандарта IEEE–754 можно рассмотреть представление числовых данных с плавающей точкой в микропроцессорных системах. Здесь используются данные трех типов (табл. 2.21):
– вещественные числа одинарной точности
(single real),
соответствующие
;
– вещественные числа двойной точности
(double real),
соответствующие
;
– вещественные числа расширенной
точности (extended real)
или временные вещественные числа,
соответствующие
.
Временные вещественные числа имеют в
своем представлении явный бит
.
В памяти микропроцессорной
системы числа хранятся чаще всего
в форматах
или
,
а их обработка выполняется в
.
Следует отметить, что целые числа в
диапазоне
представляются абсолютно точно в
.
Таблица 2.21 – Зависимость диапазона представимых чисел от базовых форматов
Тип |
Длина |
Точность |
Диапазон (дв.) |
Диапазон (дес.) |
БОФ |
32 |
24 |
|
|
БДФ |
64 |
53 |
|
|
РДФ |
80 |
64 |
|
|
Если в процессе вычислений результат выходит за пределы представимых чисел, то имеет место особый случай:
– нарушение нормализации;
– если результат превышает
,
то такой случай называют переполнением
или переполнением порядка, и вычисления
при этом останавливают (прерывание);
– если результат меньше
,
имеет место антипереполнение или
исчезновение порядка, что обычно
воспринимается как нулевой результат
(машинный 0);
– в результате выполнения сложения-вычитания мантисса может оказаться равной при ненулевом порядке. Это ситуация потери значимости (псевдонуль). Результат интерпретируется как машинный .
2.4.4 Принципы выполнения арифметических операций над числами в форме с плавающей точкой
Пусть требуется выполнить некоторую арифметическую операцию над операндами и в форме с плавающей точкой:
.
.
Результатом операции будет число:
.
Порядки чисел и представлены разрядами, а мантиссы – ( -разрядные) правильные дроби, то есть:
,
.
