ць перенесення СF.
Прапорець паритету РF (або парності).
Прапорець допоміжного переносу АF
Прапорець нуля ZF.
Прапорець знака SF.
Прапорець переповнювання ОF.
Решта прапорці призначені для управління деякими діями процесора.
Програмна модель блоку з плаваючою точкою, як і більшість інших арифметичних сопроцессоров, спирається на загальну стекову організацію. Вибір її обумовлений декількома обставинами. Одне з них полягає в тому, що в математичних розрахунках результат поточної операції часто може замістити один або обидва вихідних операнда і є операндом наступної команди. Стекова організація дозволяє в цих випадках застосовувати так звані безадресні (нуль-адресні) команди невеликої довжини, скорочуючи таким чином число звернень до пам'яті і, отже, підвищуючи швидкодію. Основу програмної моделі співпроцесора, показаної на малюнку 4, утворює регістровий стек з восьми 80-бітових регістрів RО-R7. У цих (арифметичних) регістрах зберігаються числа, представлені у розширеному матеріальному форматі. У будь-який момент часу трехбітное поле SТ в слові стану (TOP) визначає регістр, який є поточної вершиною стека ST. При операції включення в стек здійснюється декремент поля SТ і завантажуються адресуються дані в нову вершину стека. При операції витягання з стека в приймач, яким найчастіше є пам'ять, передається вміст поточної вершини стека, а потім здійснюється інкремент поля SТ. Таким чином, при стандартних стекових операціях поле SТ виконує функції традиційного покажчика стека SР. p align="justify"> Стек має кругову організацію. У командах співпроцесора допускається явне або неявне звернення до регістрів стека з модифікацією або без модифікації поля SТ. Так, у деяких операціях операндом служить вміст вершини стека, а результат заміщає операнд. У деяких бінарних операціях операндами служать числа в двох верхніх регістрах стека, а результат поміщається на місце одного з них. Нарешті, в бінарних операціях допускається явне вказівку регістрів, що містять операнди. Явна адресація регістрів здійснюється щодо поточної вершини стека, і позначення SТ (i) визначає i-й регістр в стек. Якщо, наприклад, поле SТ містить 100 2 , тобто вершиною стека є регістр R4, то команда FАDD SТ, SТ (2) додасть до числа в регістрі R4 число з регістра R6. FPU має команди, в яких не витримуються звичайні угоди про стек, тобто про те, що будь-яка стекова операція, автоматично модифікує покажчик стека. Наприклад, команда FST (запам'ятати в пам'яті) передає вміст вершини стека в пам'ять, але не виробляє інкремент поля SТ. Передбачені також спеціальні команди инкремента і декремента поля SТ.
З кожним регістром стека асоціюється двухбітний тег (ознака), сукупність яких утворює слово тегів. Тег регістра RО знаходиться в молодших бітах цього слова, а тег регістра R7-в старших. Тег фіксує наявність в регістрі дійсного числа (кінцеве ненульове число) - код 00, істинного нуля - код 01, спеціального числа (денормалізованное число, що не-число або нескінченність) - код 10 і відсутність даних - код 11. p align="justify"> В останньому випадку регістр називається порожнім (неініціалізованих) і одне з дій співпроцесора при ініціалізації полягає у завантаженні в біти тегів всіх регістрів коду 11. Спроба команди витягти число з пустого регістра фіксується як особливий випадок недійсною операції. Крім того, спроба завантажити число в непорожній регістр також викликає реєстрацію аналогічного особливого випадку. Таким чином, наявність регістра тегів дозволяє сопроцессору швидше виявляти особливі випадки і ефективніше обробляти спеціальні чисельні значення, включаючи і нуль. Структура програмної моделі блоку співпроцесора представлена ​​на малюнку 4. p align="justify"> Співпроцесор має два програмно доступних 16-бітних регістра слово управління CW і слово стану SW, вміст яких визначає його режим роботи і поточне стан.
В
Регістри співпроцесора
В
Регістр стану SW
Рис. 4. Програмна модель співпроцесора
Регістр управління містить 6 біт масок особливих випадків, а регістр стану 6 біт прапорців особливих випадків, Р - втрата точності, U-антипереполнение, О - переповнення Z-розподіл на нуль, D - денормалізованний операнд, I-недійсна операція.
Слово управління визначає один з декількох варіантів обробки чисельних даних. Для кожного варіанту програміст задає маскування особливих випадків, точність обчислень, спосіб округлення та інтерпретацію нескінченності. Слово управління завантажується з пам'яті спеціальною командою. Отже...