Обчислювальні машини, системи та мережі (стор
| З-за великого обсягу цей матеріал розміщений на декількох сторінках: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |

Основніобчислювальні команди.Включають різні арифметичні команди і команди порівняння.
Елементарніарифметичні команди.Ці команди (табл. 2.12)
ST(0) + ST(1) - > ST (0)
ST(0) - ST(1) - > ST (0)
ST (1) - ST (0) - & gt; ST (0)
ST(0) x ST(1) - > ST (0)
ST(0)/ST(1) - > ST (0)
ST(1)/ST(0) - > ST (0)
виконують чотири арифметичні дії над операндами, розміщеними у двох верхніх елементах стека ST (0) і ST (1) із занесенням результату ST (0). У звичайних операціях складання FADD , віднімання FSUB , множення FMUL і поділу FDIV перший операнд береться з вершини стека ST (0), а другий наступного елемента ST (1). Оскільки результат віднімання та поділу залежить від порядку проходження операндів, введені так звані зворотні операції віднімання FSUBR та поділу FDIVR, які змінюють операнди місцями. Для забезпечення більшої гнучкості при виконанні арифметичних дій запроваджено арифметичні команди з розширеними можливостями (табл. 2.13). При використанні цих команд один операнд повинен бути у вершині стека, а другий - у довільному регістрі ST ( i ) чи пам'яті. В останньому випадку операнд може бути представлений лише у двох форматах КВФ та ДВФ.
Результат операції може бути розміщений у довільному регістрі ST (i). Можливості розміщення другого операнда та результату різні для мнемокодів команд, представлених урізних стовпцях (а, б, у табл. 2.13).
Команди (а) допускають розміщення другого операнда як у пам'яті, і у довільному регістрі ST ( i ), причому результат може бути розміщений у довільному регістрі. Команди (б) допускають розміщення другого операнда та запис результату довільний регістр. При виконанні команд (б) додатково здійснюється виштовхування зі стека його вершини. Команди (в) допускають розміщення другого операнда тільки пам'яті, а результат розміщення у вершину стека ST (0). Ці команди виконують арифметичні дії над 16- та 32-розрядними цілими числами.
Елементарні команди порівняння.Ці команди (табл. 2.14) дозволяють порівнювати дані, розташовані у двох верхніх регістрах стека ST (0) і ST (1) ( команди FCOM, FCOMP, FCOMPP), а також порівнювати з нулем (FTST) та аналізувати дані у вершині FXAM. Команди порівняння можуть виконуватися без зміни стану стека (FCOM), з виштовхуванням одного з даних, що порівнюються (FCOMP) і з виштовхуванням обох порівнюваних даних (FCOMPP).
ST (0) порівнюється зі ST (1)
ST (0) порівнюється зі ST (1) і виштовхується
ST (0) порівнюється з ST (1) і обидва виштовхуються
ST (0) порівнюється з нулем
ST (0) аналізується
Результати порівняння містяться в регістр стану SR (розряди С3, С0). Значення прапорів С3, С0 встановлюються залежно від співвідношення даних, що порівнюються відповідно до табл. 2.3. Оскільки при реалізації алгоритмів досить часто проводиться порівняння з нулем, запроваджено відповідну команду FTST. Команда FXAM виконує детальний аналіз вмісту вершини стека і поміщає результати в регістр стану SR (розряди C0-C3). Значення прапорів С0, C1, C3встановлюються залежно від результатів аналізу (див. табл. 2.4). Прапор С2 вказує на знак числа, розташованого у вершині.
Командиуправління.Включають різні команди управління співпроцесором і налічують 15 мнемокодов.
Команда FINIT - початкової ініціалізації здійснює дії, аналогічні тим, які виконуються за зовнішнім сигналом RESET. Ця команда дозволяє будь-якої миті здійснити початкову установку співпроцесора.
Команди FENI і FDISI - дозволи та заборони видачі запитів переривання на виході INT арифметичного процесора дозволяють встановлювати в "1" і скидати в "0" розряд-маску IEM, призначення якого описано вище.
Команда FLDCW addr дозволяє завантажувати слово керування в регістр управління CR . Управляюче слово має бути попередньо сформоване в пам'яті, де у відповідних полях (див. рис. 2.4) задаються необхідні режими округлення RC, управління точністю РС, тип арифметики IC, а також розряди-маски виняткових ситуацій РМ, UM, OM, ZM, DM , IM .
Команда FCLEX – обнулення прапорів виняткових ситуацій дозволяє скинути ці прапори у «0». Нагадаємо, що будь-який з прапорів PE, UE, ОЕ, ZE, DE та IE, будучи одного разу встановлений в «1», перебуватиме в цьому стані аж до подачі команди FCLEX.
Прапори С0,С3 розташовані в розрядах регістру стану SR, відповідних розташування прапорів CF, ZF центрального процесора. Це забезпечує просту реалізацію умовних переходів за наслідками порівняння чисел в АП.
Мал. 2.9. Структури розміщення вмісту регістрів у пам'яті за командою
FSTENV (a) та FSAVE (б)

Команди FINCSTP та FDECSTP збільшують і зменшують відповідно значення покажчика стека ST на одиницю. Цікоманди не змінюють вміст стека та регістра-етикеток TR .
Команда FFREE надає значення TAG (i) = 11 (е mpty), яке вказує, що регістр ST (i) не ініціалізований.
Команда FNOP змушує співпроцесор пропустити три такти роботи, не виконуючи жодних дій.
Спеціальніобчислювальні команди. Виконують специфічні операції, які часто використовуються під час обчислень (табл. 2.15).