Всего поддерживается семь различных форматов. Три формата для целых, три —
для вещественных, один — для двоично-десятичных чисел. Каждый из этих
форматов характеризуется числом занимаемых бит и диапазонами представимых в
этом формате значений.
• FPU типов FPv4-SP и FPv5, входящие в состав ряда процессоров архитектуры ARMv7-M,
позволяют использовать шестнадцать 64-разрядных регистров D0-D15 и 32 32-разрядных
регистра S0-S31;
• остальные модели FPU включают 32 64-разрядных регистра D0-D31.
- Недопустимая операция
• опустошения стека,
• переполнение стека,
• недопустимый формат операнда(только для операнда в расширенном
формате двойной точности),
• SNaN-явно не число)
- QNaN(не истинный особый случай)
- Прочие особые случаи недопустимой операции
- Денормализованный операнд
- Переполнение и антипереполнение
- Потеря точности
Арифметические команды
Вещественные данные: сложение, вычитание, умножение, деление
Целочисленные данные: сложение, вычитание, умножение, деление
Вспомогательные арифметические команды (квадратный корень, модуль, изменение
знака, выделение порядка и мантиссы)
Команды Основная Целое в памяти С извлечением
Сложение FAD FIAD FADD
Вычитание D D P
Обратное FSU FISU FSUB
вычитан. B B P
Умножение FSU FISU FSUB
Деление BR BR RP
Обратное деление FMU FIMU FMUL
L L P
FDIV FIDIV FDIVP
FDIV FIDIV FDIV
R R RP
Трансцендентные команды
Тригонометрия: синус, косинус, тангенс, арктангенс
Вычисление логарифмов и степеней
Команды управления
Инициализация сопроцессора
Работа со средой
Работа со стеком
Переключение режимов
1. Команда – FNSTCW mem (FSTCW mem) – передает содержимое регистра управления (CW) в
ячейку памяти.
2. Команда – FLDCW mem – загружает регистр управления (CW) из ячейки памяти. Эти две
команды применяются для изменения режима работы сопроцессора х87.
3. Команда – FNSTSW mem (FSTSW mem) – передает содержимое регистра состояния (SW)
сопроцессора х87 в ячейку памяти.
4. Команда – FNSTSW AX (FSTSW AX) – передает содержимое регистра состояния (SW)
сопроцессора в регистр AX микропроцессора х86.
5. Команда – FNCLEX (FCLEX) – сбрасывает в регистре состояния сопроцессора флаги особых
случаев, а также биты ES и BUSY. Эти флаги не сбрасываются аппаратно и должны явно
сбрасываться программистом.
6. Команда – FNINIT (FINIT) – инициализирует регистры управления, состояния и тэгов на
значения, приведенные в табл. Б.12. Такое же действие производит аппаратный сигнал
сброса – RESET.
9 Как реализуются ветвления на основе анализа значений данных
FPU?
ST[0] > X 0 0 0
ST[0] < X 0 0 1
ST[0] = X 1 0 0
Не сравнимы 1 1 1