Поделиться через


FpCsr

Обновлен: Ноябрь 2007

Состояние регистра включает также контрольное слово x87 FPU. В соответствии с соглашением вызова этот регистр должен быть неизменным.

Регистру контрольного слова x87 FPU при запуске программы присваиваются следующие стандартные значения.

FPCSR[0:6]: Exception masks all 1's (all exceptions masked)
FPCSR[7]: Reserved – 0
FPCSR[8:9]: Precision Control – 10B (double precision)
FPCSR[10:11]: Rounding  control - 0 (round to nearest)
FPCSR[12]: Infinity control – 0 (not used)

Вызываемый объект, который изменяет любое из полей в FPCSR, должен восстанавливать их перед возвратом к вызывающему его оператору. Кроме того, вызывающий оператор, изменяющий любое из этих полей, должен восстановить их стандартные значения до вызова функции или процедуры, если только вызываемая функция не ожидает измененных значений.

Существует два исключения из правил, касающихся неизменяемости управляющих флагов.

  1. В функциях, документированным назначением которых является изменение неизменных флагов FpCsr.

  2. Если нарушение этих правил приведет к созданию программы, поведение которой не будет отличаться от программы, в которой эти правила не нарушались, например при полнопрограммном анализе.

См. также

Ссылки

Соглашение о вызовах