Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

ВИКОРИСТАННЯ

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

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

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

Рік:
2012
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Системне програмування

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра ЕОМ  ЗВІТ до лабораторної роботи № 3 з дисципліни " Системне програмування" Львів – 2012 Тема: ВИКОРИСТАННЯ МАТЕМАТИЧНОГО СПІВПРОЦЕСОРА. Мета: познайомитися з принципами роботи математичного співпроцесора і використати його можливості для обчислення арифметичних виразів. ЗАВДАННЯ 1. Створити *.exe програму, яка реалізовує обчислення, заданого варіантом виразу. Вхідні дані повинні вводитися з клавіатури, під час виконання програми в десятковому форматі зі знаком. Програма повинна складатися з двох модулів: головний модуль – створюється мовою С і має забезпечити ввід необхідних даних, виклик асемблерної процедури для обчислення виразу та вивід результату обчислень; модуль безпосередніх обчислень – здійснює всі необхідні арифметичні дії з використанням математичного співпроцесора; 2. Переконатися у правильності роботи кожного модуля зокрема та програми загалом. 3. Скласти звіт про виконану роботу з приведенням тексту програми та коментарів до неї. 4. Дати відповідь на контрольні запитання. ВАРІАНТИ ЗАВДАНЬ А, В, С, D, E, F - знакові операнди, довжиною в байтах, згідно з індексу, значення К подано у 16-му форматі. 29 X=K-B1*C1+D3-F2/E1 12A0C029   Код програми: Main.cpp #include<stdio.h> #include<conio.h> extern "C" int calc(int B, int C, int D, int E, int F); //опис параметрів ф-ції int main() { int B=0; int C=0; int D=0; int E=0; int F=0; int X; int K=312524841; printf("X=(K-(B*C))+(D-(F/E)) k=12A0C029 hex = 312524841 dec\n"); printf("Please, enter your numbers:\n"); printf("B = "); scanf("%d",&B); printf("C = "); scanf("%d",&C); printf("D = "); scanf("%d",&D); printf("E = "); scanf("%d",&E); printf("F = "); scanf("%d",&F); printf("\nC++: Result = %d\n",(K-(B*C))+(D-(F/E))); // вивід с++ результату X = calc(B,C,D,E,F); //виклик файлу асм printf("asm=X = %d\n",X); //вивід асм результату getch(); return 0; }  Calc.asm .586 .model flat,c .data Bfl dd 0 Cfl dd 0 Ffl dd 0 Dfl dd 0 Efl dd 0 D1 dd 0 D2 dd 0 tmp dd 0 .code calc PROC ;X=(K-(B*C))+(D-(F/E)) k=12A0C029 hex = 312524841 dec push ebp mov ebp,esp mov eax,[ebp+8] mov Bfl,eax mov eax,[ebp+12] mov Cfl,eax mov eax,[ebp+16] ; <- зчитування чисел з клавіатури і збереження їх в змінні Bfl,Cfl,Dfl,Efl,Ffl mov Dfl, eax mov eax,[ebp+20] mov Efl,eax mov eax,[ebp+24] mov Ffl,eax fild Bfl fild Cfl fmul mov tmp,312524841 fild tmp fsubr fistp D1 fild Ffl fild Efl fdiv fild Dfl fsubr fistp D2 fild D1 ;завантаження до співпроцесора D1 fild D2 ;завантаження до співпроцесора D2 fadd fistp tmp ;збереження результату в змінну tmp, вилучаючи зі стеку mov eax,tmp ;занесення значення змінної tmp в регістр еах, для виводу в С++ pop ebp ret calc ENDP END   Результат виконання:  Висновок: Я ОВОЛОДІВ НАВИКАМИ СТВОРЕННЯ ПРОГРАМ, ЧАСТИНИ ЯКИХ НАПИСАНІ РІЗНИМИ МОВАМИ ПРОГРАМУВАННЯ ЗАСВОЇВ ПРАВИЛА ВЗАЄМОДІЇ РІЗНИХ МОДУЛІВ.
Антиботан аватар за замовчуванням

20.05.2013 22:05

Коментарі

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

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

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

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

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини