DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Звіт до лабораторної роботи № 3 з дисципліни «Системне програмування»

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
КН
Кафедра:
Кафедра електронних обчислювальних машин

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

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

Про що ця робота

Звіт до лабораторної роботи присвячено вивченню принципу роботи математичного співпроцесора. Розроблено програму на мовах C та Assembler для обчислення арифметичного виразу.

У роботі розглядаються

  • Системне програмування
  • Мова асемблера
  • Взаємодія модулів C та Assembler
  • Арифметичні обчислення
  • Лабораторна робота

Зміст і розділи

  1. Тема
  2. Мета
  3. Завдання
  4. Код програми
  5. Результат виконання
  6. Висновок
Для кого:Студенти технічних спеціальностей вищих навчальних закладів.
Викладачі:Викладач кафедри ЕОМ

Ключові поняття

модульарифметичний виразстекфункціякомпіляціявхідні данісистемне програмування

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра ЕОМ  ЗВІТ до лабораторної роботи № 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   Результат виконання:  Висновок: Я ОВОЛОДІВ НАВИКАМИ СТВОРЕННЯ ПРОГРАМ, ЧАСТИНИ ЯКИХ НАПИСАНІ РІЗНИМИ МОВАМИ ПРОГРАМУВАННЯ ЗАСВОЇВ ПРАВИЛА ВЗАЄМОДІЇ РІЗНИХ МОДУЛІВ.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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