Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпс шпоры.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.62 Mб
Скачать

14. Форматы данных арифметического сопроцессора Intel 8087.

АСП может оперировать данными семи различных форматов:

- целых двоичных чисел (три формата);

- целых двоично-десятичных чисел (один формат);

- вещественных чисел с плавающей точкой (три формата).

Целые двоичные числа записываются в память, начиная с младших байтов. Во всех трех форматах ЦС, КЦ и ДЦ, отрицательные числа представляются в дополнительном коде, тем самым старший бит определяет знак числа (0 - положительное число, 1 - отрицательное число). Один из кодов, в котором знаковый разряд 5=1, а в значащих разрядах - все нули, выделен для обозначения неопределенности. Код неопределенности генерируется в исключительных ситуациях, описанных далее.

Целые двоично-десятичные числа записываются в плотно упакованном двоично-десятичном (ДД) коде, в котором под каждую цифру отводится четыре двоичных разряда. В памяти ДД-числа также располагаются, начиная с младших разрядов, и занимают 10 байт. Старший байт используется только под знак числа, который расположен в разряде 79, а остальные разряды старшего байта 78-72 содержат нули.

В полный диапазон двоично-десятичных чисел входят коды +0 и -0, а также специальный код неопределенности (все биты равны 1). Код неопределенности является результатом в исклю­чительных ситуациях, описанных далее.

Вещественные числа в каждом из трех форматов KB, ДВ и ВВ включают три поля: поле знака мантиссы, поле порядка и по­ле мантиссы (рис. 3.2). Мантисса числа всегда (кроме исключи­тельных случаев) записывается в нормализованном виде \,т\т2..., где тЛпъ... - дробная часть числа. Целая часть, всегда равная единице, прямо не представляется в форматах KB и ДВ, а учитывается неявно. В формате ВВ старший бит мантиссы представляется явно. Порядок вещественных чисел записывается в поле порядка в смещенном виде, поэтому истинный порядок ра­вен числу в поле порядка минус значение смещения. Применение смещенных порядков позволяет упростить операцию сравнения вещественных чисел, достаточно сравнить их порядки как обыч­ные целые числа без знака. Поскольку операция сравнения явля­ется доминирующей в вычислительных программах, такое упро­щение существенно повышает эффективность программ.

Учитывая разрядность полей в форматах вещественных чи­сел и особенности представления мантисс и порядков, можно указать формулы для вычисления истинных значений чисел:

где s - знак мантиссы; т, - значение /-го двоичного разряда ман­тиссы, считая от запятой; Е - значение в поле порядка.

В формате вещественных чисел могут быть представлены абсолютно точно и целые числа, лежащие в пределах диапазона представимых значений.

Для представления вещественных чисел используется часть значений в поле порядка от 00...00 до 11... 10. В форматах KB и ДВ значение 11... 11 используется для кодирования ±со, когда в поле мантиссы все нули, и для обозначения «не чисел» (NAN - Not a Number), когда в поле мантиссы ненулевое значение.

Все множество конечных чисел разбито на три класса: нор­мализованные, ненормализованные и денормализованные.

В числах последних двух классов после запятой всегда формируется нуль (старший бит мантиссы), при этом денорма­лизованные числа содержат все нули в поле порядка. Появление ненормализованных и денормализованных чисел приводит к ис­ключительным ситуациям, о которых сопроцессор сигнализиру­ет особым образом. Подробно вопросы обработки исключитель­ных ситуаций будут описаны далее.

Формат ВВ обеспечивает максимальный рабочий диапазон значений вещественных чисел и является основным, в нем вы­полняются все операции сопроцессора. Преобразование исход­ных данных, представленных в памяти в любом другом формате (ЦС, КЦ, ДЦ, ДД, KB, ДВ), в формат ВВ осуществляется сопро­цессором автоматически при загрузке данных. Такое преобразо­вание никогда не приводит к потере точности. Заметим, что при необходимости можно «заставить» сопроцессор использовать другой формат, а именно KB или ДВ, что осуществляется про­граммно и используется для эмуляции на основе 8087 какого- либо другого вычислителя с разрядностью, не превышающей 32 или 64бит соответственно.

Результаты вычислений могут быть переданы в память в любом (из семи) желаемом формате. Таким образом, получе­ние результата требует (в шести случаях из семи) обратного образования из формата ВВ в желаемый. В ряде случаев это мо­жет привести к потере точности из-за необходимости округле­ния, о чем сопроцессор сигнализирует, формируя запрос преры­вания на выходе INT.