|
+-----------------------------------------------------------------------------+| | Описание различий | Влияние на | Причина || Выход +---------------------------------------| программное | различий || | Поведение систем | Поведение систем | обеспечение | || | i486 CPU/387 NPX | 80287/8087 | | |+---------+------------------+--------------------+---------------+-----------|| NaN |Системы i486 CPU/ |Системы 80287/8087 |Неинициализи- |Совмести- ||(не- |387 NPX различает |генирируют только |рованный учас- |мость 754 || число) |сигнальные и без- |один класс NaN(экви-|ток памяти, со-|стандарта || |ответные NaNы. |валентный безответно|держащий QNaN-ы|IEEE. || |Системы i486 |му NaN), но вызывают|, которые дол- | || |CPU/387 NPX гене- |исключение неопреде-|ны быть измене-| || |рируют только без-|ленной операции при |ны на SNaN-ы, | || |ответные NaN.Когда|возникновении любого|чтобы в систе- | || |встречается сиг- |класса NaN. |мах i486 CPU/ | || |нальные NaN-ы, | |387 NPX возник-| || |генерируется искл.| |ла ошибка при | || |неопределенной | |обращении к не-| || |операции (исключе-| |инициализиро- | || |не для FCOM, FIST,| |ванному участку| || |FBSTP, которые | |памяти. | || |вызывают IE для | | | || |безответных NaN). | | | |+---------+------------------+--------------------+---------------+-----------||Псевдо- |Системы i486 CPU/ |В системах 80287/ |Нет. Системы |Совмести- ||ноль, |387 NPX не генери-|8087 определены и |i486 CPU/387 DX|мость 754 ||Псевдо- |руют и не поддер- |поддерживаются |не генирируют |стандарта ||NaN, |живают такие фор- |специальные обработ-|эти форматы, и |IEEE. ||Псевдо- |маты; при встрече |чики для таких |следовательно, | ||бесконеч-|с ними в арифмети-|форматов. |они не встретя-| ||ность и |ческих операциях | |тся если только| ||Ненорми- |возникает исключе-| |программист не | ||раванный |ние неопределенной| |намерен ввести | ||формат |операции. | |их. | |+---------+------------------+--------------------+---------------+-----------||Биты |Кодирование в |Кодирование для |Обработчик |Совмести- ||слова |слове тега для |псевдо-нуля и ненор-|исключений |мость 754 ||тега для |неподдерживаемых |мированного-"дейст- |может нуждаться|стандарта ||неподдер-|форматов данных |вительный" (тип 00);|в изменении, |IEEE. ||живаемых |упоминается в |другие-"специальные |если програм- | ||форматов |Разделе 25.2.2 |данные" (тип 10). |мист использует| ||данных |"специальные | |такие типы | || |данные" (тип 10). | |данных. | |+---------+------------------+--------------------+---------------+-----------||Исключе- |Исключение неопре-|Возникает исключение|Нет. Програм- |Улучшение, ||ние неоп-|деленной операции |неопределенной опе- |мное обеспе- |в результа-||ределен- |не возникает, ког-|рации, когда встре- |чение систем |те которого||ной опе- |да встречается |чаются денормали- |i486 CPU/387 |не возника-||рации |денормализованное |зованное число в |NPX будет про- |ет исключе-|| |число в FSORT,FDIV|FSQRT, FDIV или |должать выпол- |ние. || |или FPREM или при |FPREM или преобразо-|нятся в случаях| || |преобразовании BCD|вание BCD или целого|когда програм- | || |или целого. При | |ное обеспечение| || |выполнении опера- | |систем 80287/ | || |ции вначале выпол-| |8087 попадет в | || |няется нормализа- | |ловушку. | || |ция значения. | | | |+---------+------------------+--------------------+---------------+-----------||Исключе- |Исключение "денор-|Исключение "денорма-|Необходимость |Повышение, ||ние |мализованное число|лизованное число" не|в изменении |производи- ||денорма- |возникает в транс-|возникает в транс- |обработчика |тельности ||лизован- |цендентных коман- |цендентных командах |исключений воз-|для норма- ||ного |дах и FXTRACT. |и FXTRACT. |никает только |льного ||числа | | |при специаль- |случая. || | | |ной обработке | || | | |различных кодов| || | | |операций. | |+---------+------------------+--------------------+---------------+-----------||Исключе- |Маскированное |Маскированное исклю-|Маскированное |Совмести- ||ние пере-|исключение пере- |чение переполнения. |исключение |мость 754 ||полнения |полнения. | |переполнения. |стандарта || | | | |IEEE. || |Если режим округ- |В системе 80287/8087|В большинстве | || |ления установлен |не возникает исклю- |обобщенных ок- | || |на отбрасывание |чение переполнения, |ругляющих режи-| || |лишних цифр (по |когда маскрованный |мах роли не иг-| || |направлению к 0), |ответ не бесконеч- |рает. При | || |то результатом |ность; т.е. сигнал |отбрасывании | || |будет число, |переполнения возни- |лишних цифр (по| || |большее по модулю.|кает только когда |направлению к | || | |контроль округления |0) программа | || | |не предусматривает |систем i486 CPU| || | |округление нуля. |/387 NPX, при | || | |Если округление |условии перепо-| || | |установлено на отб- |лнения выдает | || | |расывание лишних |результат, ко- | || | |цифр (по направлению|торый отлича- | || | |к 0), то результатом|ется в послед- | || | |будет плюс или минус|нем значащем | || | |бесконечность. |бите мантиссы | || | | |по сравнению с | || | | |результатом | || | | |работы програм-| || | | |мы системы | || | | |80287. | || | | | | || |Немаскированное |Немаскированное |Немаскированное| || |исключение пере- |исключение перепол- |исключение | || |полнения. |нения. |переполнения. | || | | | | || |Исключение точнос-|Исключение точности |При помещении | || |ти помечено. При |не помечено, и ман- |результата в | || |помещении резуль- |тисса не округляется|стек, программа| || |тата в стек манти-| |систем i486 CPU| || |сса округляется | |/387 NPX при | || |согласно биту | |условии пере- | || |управления точно- | |полнения выдает| || |стью (PC) слова | |результат, | || |управления или | |отличный от | || |согласно коду | |результата ра- | || |операции. | |боты программы | || | | |систем 80287/ | || | | |8087. Отличие | || | | |проявляется | || | | |только при | || | | |выполнении | || | | |обработчика | || | | |исключений. | |+---------+------------------+--------------------+---------------+-----------||Исключе- |Обстоятельства |Обстоятельства |Маскированное |Совмести- ||ние отри-|отрицательного |отрицательного |исключение от- |мость 754 ||цатель- |переполнения. |переполнения. |рицательного |стандарта ||ного пе- | | |переполнения. |IEEE. ||реполне- | | | | ||ния | | | | || | | | | ||Два родс-|Когда исключение |Когда исключение |Нет влияния. | ||твенных |отрицательного |отрицательного пере-|Исключение | ||случая |переполнения |полнения маскирован-|отрицательного | ||вызывают |маскированно, |но и округление |переполнения | ||отрицате-|возникновение сиг-|выполняется в сторо-|случается реже,| ||льное |нала исключения |ну 0, флаг исключе- |когда округле- | ||перепол- |происходит и когда|ния отрицательного |ние выполняется| ||нение: |результат очень |переполнения устана-|по направлению | || |мал и когда при |вливается на "кроше-|к 0. | ||1. Возни-|денормализации |чность" вне зависи- | | || кает |результата проис- |мости от потери |Исключение | ||"крошеч- |ходит потеря точ- |точности. |отрицательного | ||ный" рез-|ности. | |переполнения | ||ультат. | | |не маскированно| ||Крошечное|Отклик на отрица- |Отклик на отрицате- | | ||число,по |тельное переполне-|льное переполнение. |При помещении | ||причине |ние. | |результата в | ||своей ма-| | |стек программа | ||лости, |Когда исключение |Когда исключение |систем i486 CPU| ||может вы-|отрицательного |отрицательного пере-|/387 NPX при | ||звать не-|переполнения |полнения не маски- |условии отри- | ||сколько |немаскированно и |рованно и адресатом |цательного | ||других |команда поддержи- |является стек, ман- |переполнения | ||исключе- |вает сохранение |тисса не округляется|выдает резуль- | ||ний (нап-|результата в стеке|, а остается как |тат, отличный | ||ример ис-|, мантисса округ- |есть. |от результата | ||ключение |ляется, для команд| |работы програм-| ||перепол- |контролируемых PC,| |мы систем 80287| ||нения при|с точностью, соот-| |/8087. Отличие | ||делении).|ветствующей точно-| |касается только| || |сти в бите управ- | |младшего знача-| ||2. Потеря|ления точностью | |щего бита ман- | ||точности |(PC)слова управле-| |тиссы и сущест-| ||при дено-|ния, в других слу-| |венно только | ||рмализа- |чаях, с повышенной| |для обработчика| ||ции кро- |точностью. | |исключений. | ||шечного | | | | ||числа. | | | | || | | | | ||Какой | | | | ||из этих | | | | ||случаев | | | | ||приводит | | | | ||в дейст- | | | | ||вие иск- | | | | ||лючение | | | | ||отрицате-| | | | ||льное пе-| | | | ||реполне- | | | | ||ние зави-| | | | ||сит от | | | | ||того ма- | | | | ||скировано| | | | || ли ис-| | | | ||ключение.| | | | |+---------+------------------+--------------------+---------------+-----------||Исключе- |Нет различий в |Когда исключение |Никакого, но |Усовершен- ||ние стар-|старшинстве исклю-|денормализации не |в системах i486|ствование ||шинства |чений денормализа-|маскировано, задача|CPU/387 NPX |операций || |ции в зависимости |имеет преимушество |может мешать | || |от того, маскиро- |старшинства над |некоторым дено-| || |вано ли исключе- |всеми другими исклю-|рмализованным | || |ние или нет. |чениями. |операндам, не | || | | |нуждающимся в | || | | |нормализации | |+-----------------------------------------------------------------------------+
|