DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Використання математичного співпроцесора

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2017
Тип роботи:
Лабораторна робота
Предмет:
Системне програмування та операційні системи

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки Національний університет “Львівська політехніка” Кафедра ЕОМ / Звіт з лабораторної роботи № 3 з дисципліни: “Системне програмування” на тему: “Використання математичного співпроцесора” Мета лабораторної роботи Ознайомитися з принципами роботи математичного співпроцесора і використати його можливості для обчислення арифметичних виразів з числами з плаваючою комою. Теоретичні відомості Математичний співпроцесор запускається центральним процесором. Після запуску він виконує всі обрахунки самостійно і паралельно з роботою центрального процесора. Якщо центральний процесор направляє наступну команду співпроцесору в той момент, коли співпроцесор ще не закінчив виконання попередньої команди, центральний процесор переводиться в стан очікування. Якщо ж співпроцесор не зайнятий, центральний процесор, направивши команду співпроцесору, продовжує свою роботу, не очікуючи завершення обрахунку. Послідовне розташування команд співпроцесора і центрального процесора в коді програми створюють ілюзію послідовного їх виконання. Простіше кажучи можлива така ситуація, що коли центральний процесор звернеться до комірки пам’яті, куди арифметичний співпроцесор повинен був записати результат своїх обчислень і якщо співпроцесор ще не закінчив обрахунки то результату там не буде. Однак є спеціальні засоби синхронізації (команда FWAIT), що дозволять центральному процесорові дочекатися результатів роботи співпроцесора. Індивідуальне завдання Створити *.exe програму, яка реалізовує обчислення, заданого варіантом виразу. Вхідні дані повинні вводитися з клавіатури, під час виконання програми, як дійсні числа зі знаком. Програма повинна складатися з двох модулів: головний модуль – створюється мовою С і має забезпечити ввід необхідних даних, виклик асемблерної процедури для обчислення виразу та вивід результату обчислень; модуль безпосередніх обчислень – здійснює всі необхідні арифметичні дії з використанням математичного співпроцесора. Переконатися у правильності роботи кожного модуля зокрема та програми загалом. Скласти звіт про виконану роботу з приведенням тексту програми та коментарів до неї. Дати відповідь на контрольні запитання. 29. X=K-B1*C1+D2-F2/E1 12A0C029  А, В, С, D, E, F - дійсні числа, де індекс визнає точність внутрішнього подання (1 – одинарної, 2 – подвійної точності). Константу К подано у 16-му форматі. Код програми main.cpp #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <conio.h> extern "C" double calc(float, float, double, float, double); extern "C" const double K = 0x12A0C029; void main() { printf("X = %.0lf - B * C + D - F / E\n\n", K); float B, C, E; double D, F; printf("B = "); scanf("%f", &B); printf("C = "); scanf("%f", &C); printf("D = "); scanf("%lf", &D); printf("E = "); scanf("%f", &E); printf("F = "); scanf("%lf", &F); printf("\nC: X = %lf\nAsm: X = %lf\n", K - B * C + D - F / E, calc(B, C, D, E, F)); _getch(); } calc.asm .686 .model flat, c .data extrn K : qword .code calc proc push ebp mov ebp, esp fld dword ptr [ebp+8] ; ST(0) = B fmul dword ptr [ebp+12] ; ST(0) = B * C fsubr K ; ST(0) = K - B * C fadd qword ptr [ebp+16] ; ST(0) = K - B * C + D fld qword ptr [ebp+28] ; ST(0) = F | ST(1) = K - B * C + D fdiv dword ptr [ebp+24] ; ST(0) = F / E | ST(1) = K - B * C + D fsub ; ST(0) = K - B * C + D - F / E pop ebp ret calc endp end Результат виконання програми / / / Висновок Я оволодів навичками створення програм, частини яких написані різними мовами програмування та засвоїв правила взаємодії між програними модулями різних мов програмування.
Антиботан аватар за замовчуванням

07.05.2017 14:52

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!