
- •История разработки микропроцессоров
- •3.Регистр флагов eflags/flags
- •Сегментная организация памяти
- •Сегментная организация памяти в защищенном режиме
- •Страничная организация памяти
- •Команды передачи данных
- •Двоично-десятичная арифметика
- •2.Команда add
- •Команда sar
- •Команда shr
- •Особые случаи
- •Округления
Особые случаи
Численное переполнение возникает, когда результат слишком велик по абсолютной величине, чтобы быть представленным в формате приемника. Примерами служат сложение наибольшего числа с расширенной точностью с самим собой или преобразование такого числа в число с двойной точностью.
Численное антипереполнение возникает, когда ненулевой результат по абсолютной величине слишком мал для представления, т.е. когда он слишком близок к нулю. Примером служит преобразование наименьшего положительного числа с расширенной точностью в число с двойной точностью.
Неточный результат. Например, при преобразовании числа с двойной точностью в формат числа с одинарной точностью, не имеющей разрядов для представления всех значащих цифр.
Деление на нуль.
Недействительная операция. Например, деление 0 на 0, извлечение квадратного корня из отрицательного числа, умножение и деление бесконечностей, умножение бесконечности на нуль и т.д.
Округления
При неточном результате применяются следующие виды округления:
В направлении к нулю. Результат приводится в формат приемника путем отбрасывания некоторого числа младших бит.
В направлении к положительной бесконечности.
В направлении к отрицательной бесконечности.
Числовая ось.
-
∞ 0
+∞
К ближайшему. Результат округляется до ближайшего числа. Правила округления. Если отбрасываемая цифра меньше 5, то оставшаяся цифра уменьшается на 1, в противном случае (если больше 5) – увеличивается на 1. При равенстве отбрасываемой цифры 5 оставшаяся нечетная цифра увеличивается на 1, четная – не меняется.
При выполнении арифметических операций над числами с плавающей запятой иногда возникают ошибочные условия или особые случаи.
Если результат операции невозможно точно представить в формате приемника, то возникает особый случай неточного результата. Например, при делении 1 на 3 получается бесконечная двоичная дробь, которую невозможно представить ни в одном формате с плавающей запятой. Такая же ситуация может возникнуть при преобразовании числа с двойной точностью в формат числа с одинарной точностью, не имеющей разрядов для представления всех значащих цифр.
Особый случай численного антипереполнениявозникает, когда ненулевой результат по абсолютной величине слишком мал для представления, т.е. когда он слишком близок к нулю. Примером служит результат деления 1,0 на наибольшее число с расширенной точностью. Другим примером является преобразование наименьшего положительного числа с расширенной точностью в число с двойной точностью.
Особый случай деления на нульвозникает, когда ненулевое число делится на нуль.
Особый случай численного переполнениявозникает, когда результат слишком велик по абсолютной величине, чтобы быть представленным в формате приемника. Примерами служат сложение наибольшего числа с расширенной точностью с самим собой или преобразование такого числа в число с двойной точностью.
Особый случай недействительной операциивключает в себя все, что осталось, например, деление 0 на 0, извлечение квадратного корня из отрицательного числа, умножение и деление бесконечностей, умножение бесконечности на нуль и т.д.
Обычная обработка особых случаев заключается в том, чтобы приостановить выполнение программы и передать управление процедуре особого случая.
При особом случае неточного результата можно выбирать один из четырех возможных режимов округления. При округлении в направлении к нулюрезультат приводится в формат приемника путем отбрасывания некоторого числа младших бит. Это эквивалентно выбору ближайшего числа с плавающей запятой, которое по абсолютному значению меньше истинного результата.
При режиме округления к ближайшемуистинный результат округляется до ближайшего числа с плавающей запятой, при этом во многих случаях минимизируется ошибка округления. Два режима округленияв направлении к положительной бесконечностиив направлении к отрицательной бесконечностииспользуются для реализации интервальной арифметики и работа этих режимов очевидна из названия.