Set8087CW, процедура

Синтаксис


procedure Set8087CW(ControlWord: Word);

Описание

Процедура Set8087CW устанавливает управляющее состояние FPU и сохраняет значение параметра ControlWord в переменной Default8087CW. Set8087CW - настоящая процедура.

Ошибки

Советы и приемы

  • Дополнительную информацию об управляющем состоянии FPU можно получить в документации по архитектуре процессоров Intel.
  • Чаще всего Set8087CW служит для изменения точности операций с плавающей точкой, маски исключительных ситуаций и режима округления. Применяя типы Comp и Currency, убедитесь, что не уменьшили точность операций с плавающей точкой.

Пример


type
  TRoundMode = (rmNearest, rmDown, rmUp, rnZero);
  TPrecisionMode = (pmSingle, pmReserved, pmDouble, pmExtended);
  TExceptionMask = (emInvalid, emDenormalized, emZeroDivide,
                    emOverflow, emPrecision);
  TExceptionMasks = set of TExceptionMask;
  TFpuControl = record
    RoundMode: TRoundMode;
    Precision: TPrecisionMode;
    ExceptionMask: TExceptionMasks;
  end;
const
  RoundShift =10;
  PrecisionShift = 8;

// Устанавливаем управляющее состояние FPU структурированным
// образом.
procedure SetFpuCW(const FpuCW: TFpuControl);
var
  CW: Word;
begin
  CW := Byte(FpuCW.ExceptionMask);
  CW := CW or (Ord(FpuCW.Precision) shl PrecisionShift);
  CW := CW or (Ord(FpuCW.RoundMode) shl RoundShift);
  Set8087CW(CW);
end;

Смотрите также

Функции Int, Round, Trunc.
    Учебник по языку Pascal          Лабораторные работы по программированию          Справочник




Нет комментариев.



Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: