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.
 
 
 Нет комментариев. 
  
 
Оставить комментарий:
 |   
 |