- •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.6 Умножение и деление чисел в форме с плавающей точкой
Представим операцию умножения в виде:
.
тогда:
,
где
;
.
Знак произведения определяют путем суммирования по модулю 2 цифр в знаковых разрядах сомножителей:
.
При умножении чисел в форме с плавающей запятой порядок результата определяется путем сложения порядков сомножителей. Для определения мантиссы результата производят умножение мантисс операндов как чисел с фиксированной точкой по любому из рассмотренных алгоритмов. Мантисса произведения может оказаться ненормализованной, причем возможно только правое нарушение нормализации на один разряд. В этом случае мантиссу надо удвоить, сдвинув ее на один разряд влево, а из порядка произведения вычесть единицу.
Представим операцию деления в виде:
.
Следует помнить, что при делении чисел с плавающей точкой остатка не бывает:
,
где
;
.
Знак частного обычно определяют путем суммирования по (модулю 2) цифр в знаковых разрядах делимого и делителя. При делении чисел в форме с плавающей точкой порядок частного находят как разность порядков операндов (из порядка делимого вычитается порядок делителя). Мантиссу частного получают в результате деления абсолютных величин мантисс операндов. При делении нормализованных мантисс как правильных дробей может иметь место нарушение нормализации влево на один разряд.
Таким образом, при умножении и делении чисел в форме с плавающей точкой над порядками выполняются только операции сложения и вычитания.
Для этого удобно использовать дополнительные коды. В процессе выполнения операций над порядками возможно как переполнение порядков, так и антипереполнение.
Общий алгоритм выполнения операций умножения и деления:
определение знака результата;
сложение и вычитание порядков;
умножение и деление мантисс;
нормализация результата;
округление результата.
Как отмечалось ранее, необходимость округления результата вызвана тем, что при нормализации результата может выполняться правый сдвиг мантиссы результата и младший ее разряд при этом выходит за пределы разрядной сетки. Если считать, что результат представлен прямым кодом, то отбрасывание этого разряда вносит в абсолютную величину результата либо нулевую погрешность (если отбрасывается цифра 0), либо погрешность, равную 1/2 веса младшего разряда (если отбрасывается цифра 1). Для того чтобы погрешность по абсолютной величине результата была знакопеременной и ее среднее значение в достаточно большой последовательности операций было равно нулю, округление следует производить следующим образом. Если за пределы разрядной сетки сдвигается цифра , то младший разряд мантиссы результата устанавливают в единицу, независимо от того, какая цифра была в этом разряде ранее. В другом случае значение младшего разряда не меняют.
Пусть
– младшая цифра мантиссы результата
до округления,
– та же цифра после округления,
– цифра мантиссы, выходящая за пределы
разрядной сетки при округлении,
–
погрешность округления. Тогда все
возможные ситуации при округлении
иллюстрируются табл. 2.22,
из которой видно, что при таком округлении
погрешность абсолютной величины мантиссы
результата будет равна 0 или
веса младшего разряда, а ее среднее
значение равно нулю.
Таблица 2.22 – Результаты округления мантиссы результата
-
xm
xm+1
x’m
0
0
0
0
0
1
1
+(1/2)2-m
1
0
1
0
1
1
1
-(1/2)2-m
2.4.7 Алгоритмы выполнения операций над числами в форме с плавающей точкой, в представлении IEEE-754
Вещественное число может быть представлено в каком-либо формате стандарта IEEE–754 следующим образом:
.
С учетом условия нормализации (
),
минимальные и максимальные абсолютные
значения мантисс:
.
.
Сложение, вычитание, умножение и деление
вещественных чисел в формате IEEE-754
осуществляется в соответствии с
рассмотренными ранее алгоритмами.
Поскольку в форматах хранятся не истинные
значения, а смещенные коды порядков,
имеют место некоторые особенности,
связанные с выполнением операций над
смещенными порядками. Кроме того, должен
учитываться факт наличия бита (
)
мантиссы.
При сложении и вычитании сравнение смещенных порядков осуществляется путем вычитания смещенных кодов как целых беззнаковых чисел. Сложение мантисс выполняется по правилам сложения целых знаковых чисел. Если получен отрицательный результат, то он представлен в дополнительном коде, и его необходимо преобразовать в прямой код.
При умножении смещенный порядок произведения определяется в соответствии с рассмотренными выше правилами. Мантисса произведения может иметь нарушение нормализации.
Проанализируем различные ситуации:
1.
.
Нет нарушения нормализации.
2.
.
Нет нарушения нормализации.
3.
.
Здесь имеет место нарушение нормализации влево на 1 разряд.
При делении смещенный порядок частного определяется в соответствии с рассмотренными выше правилами. Мантисса частного может иметь нарушение нормализации. Проанализируем различные ситуации:
1.
.
Нет нарушения нормализации.
2.
;
.
Нарушение нормализации вправо на 1 разряд.
3.
;
.
Нет нарушения нормализации.
4.
.
Нет нарушения нормализации.
