Разделы:


Best links:

Программная модель арифметического процессора

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

Когда возникает исключительная ситуация, необходимо осуществить какие-либо корректирующие действия. В большинстве случаев достаточно бывает выполнить стандартные действия, которые АП производит без помощи ЦП. В особых ситуациях АП посылает сигнал запроса прерывания и корректирующие действия выполняет ЦП. Соответствующие разряды масок позволяют управлять режимами обработки исключительных ситуаций стандартным способом либо с привлечением центрального процессора.

Разряд РМ = 1 маскирует флаг РЕ, и исключительная ситуация, связанная с потерей точности, обрабатывается стандартным способом. Сопроцессор в качестве результата операции выдает округленное значение.

Разряд UM = 1 маскирует флаг UE, и в качестве результата операции выдается значение в ненормализованном виде.

Разряд ОМ = 1 маскирует флаг ОЕ, и исключительная ситуация, связанная с переполнением, обрабатывается стандартным образом.

Разряд ZM = 1 маскирует флаг ZE и в качестве результата деления на нуль выдает значение бесконечности. Знак бесконечности формируется как сумма по модулю 2 знаков делимого и делителя (напомним, что нуль в форматах вещественных чисел имеет знак «+» и «-»).

Разряд DM = 1маскирует флаг DE и, сопроцессор выполняет операцию с ненормализованным значением операнда.

Разряд IM = 1 маскирует флаг IE, и в качестве результата АП выдает значение NAN. Если операция оценивается как недействительная, когда оба участвующих в ней операнда имеют значение NAN, то в качестве результата выдается то из них, которое имеет большую мантиссу.

Описанные разряды масок могут быть установлены в «1» или сброшены соответствующей командой независимо друг от друга.

предыдущаяследующая