Міністерство освіти і науки
Національний університет «Львівська політехніка»
Кафедра ЕОМ
Звіт
до лабораторної роботи № 4
з дисципліни: “Системне програмування”
на тему: Обчислення елементарних функцій на
математичному співпроцесорі
ОБЧИСЛЕННЯ ЕЛЕМЕНТАРНИХ ФУНКЦІЙ НА
МАТЕМАТИЧНОМУ СПІВПРОЦЕСОРІ
Мета: познайомитися з принципами роботи математичного співпроцесора та
оволодіти навиками використання вбудованих елементарних математичних
функцій та реалізації розгалужень.
ТЕОРИТИЧНІ ВІДОМОСТІ:
Команди порівняння чисел
У центральному процесорі команди умовних переходів виконуються
відповідно до значень окремих бітів регістра прапорців процесора. У
арифметичному співпроцесорі існують спеціальні команди порівнянь, за
наслідками виконання яких, встановлюються біти кодів умов в регістрі стану:
FCOM – порівняння;
FICOM – порівняння цілих чисел;
FCOMP - порівняння дійсних чисел і вилучення зі стеку;
FICOMP - порівняння цілих чисел і вилучення зі стеку;
FCOMPP - порівняння і подвійне вилучення зі стеку (ST(0), ST(1));
FTST - порівняння операнда з нулем;
FXAM - аналіз операнда на тип числа (скінчене число, денормалізоване
число, нуль, некінечність, ...).
Трансцендентні команди
Трансцендентні команди призначені для обчислення наступних функцій:
тригонометричні (sin, cos, tg...)
зворотні тригонометричні (arcsin, arccos...)
показникові (xy , 2x , 10x , ex )
гіперболічні (sh, ch, th...)
зворотні гіперболічні (arsh, arch, arcth...)
Ось список всіх трансцендентних команд математичного співпроцесора:
FPTAN - обчислення часткового тангенса;
FPATAN - обчислення часткового арктангенса;
FYL2X - обчислення y*log2(x);
FYL2XP1 - обчислення y*log2(x+1);
F2XM1 - обчислення 2x-1;
FCOS - обчислення cos(x);
FSIN - обчислення sin(x);
FSINCOS - обчислення sin(x) і cos(x) одночасно.
Команди керування
Команди, керування, призначені для роботи з нечисловими регістрами
співпроцесора. Деякі команди мають альтернативні варіанти. Мнемоніки цих
команд можуть починатися з FN або F. Перший варіант відповідає командам
“Без очікування”. Для таких команд процесор не перевіряє, чи зайнятий
співпроцесор виконанням команди, тобто біт зайнятості B не перевіряється.
Особливі випадки також ігноруються.
Варіанти команд “З очікуванням” діють так само, як і звичайні команди
співпроцесора.
Ось список команд керування для співпроцесора:
FNSTCW (FSTCW) - записати управляюче слово (записує вміст регістра
управління в оперативну пам’ять).
FLDCW - завантажити управляюче слово (завантажує регістр управління
з оперативної пам’яті і, як правило, використовується для зміни режиму роботи
співпроцесора).
FNSTSW (FSTSW) - записати слово стану (записує вміст регістра стану в
оперативну пам’ять).
FNSTSW AX (FSTSW AX) - записати слово стану в AX (записує вміст
регістра стану в регістр AX центрального процесора, де можливий аналіз
вмісту за допомогою команд умовних переходів).
FNCLEX (FCLEX) - скинути особливі випадки (скидає прапорці
особливих випадків в регістрі стану співпроцесора, також скидаються біти ES і
B).
FNINIT (FINIT) - ініціалізувати співпроцесор (ініціалізує регістр стану,
регістр управління, і регістр тегів таким чином:
регістр управління - проектна нескінченість, округлення до найближчого,
розширена точність, всі особливі випадки замасковані;
ЗАВДАННЯ
Створити *.exe програму, яка реалізовує обчислення, заданого варіантом
виразу. Вхідні дані повинні вводитися з клавіатури, як дійсні числа.
Програма повинна складатися з двох модулів:
головний модуль – створюється мовою С і має забезпечити ввід необхідних
даних, виклик асемблерної процедури для обчислення виразу та вивід
результату обчислень;
модуль безпосередніх обчислень – здійснює всі необхідні арифметичні дії з
використанням математичного співпроцесора.
Переконатися у правильності роботи кожного модуля зокрема та програми загалом.
Скласти звіт про виконану роботу з приведенням тексту програми та
коментарів до неї.
Дати відповідь на контрольні запитання.
ВАРІАНТИ ЗАВДАННЯ:
Варіант
Завдання
19
Примітка:...