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

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

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

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

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

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

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

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

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

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

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

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

  • Системне програмування
  • Мова Сі
  • Трансцендентні функції
  • Розгалуження в програмах

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра ЕОМ  ЗВІТ до лабораторної роботи № 4 з дисципліни " Системне програмування" Львів – 2012 Тема: ПРОГРАМУВАННЯ СПІВПРОЦЕСОРА З ВИКОРИСТАННЯМ КОМАНД ОБЧИСЛЕННЯ ТРАНСЦЕНДЕНТНИХ ФУНКЦІЙ ТА РЕАЛІЗАЦІЯ РОЗГАЛУЖЕНЬ ПРИ ПОРІВНЯННІ ДАНИХ ДІЙСНОГО ТИПУ. Мета: познайомитися з принципами роботи математичного співпроцесора і використати його можливості для обчислення трансцендентних функцій та реалізації розгалужень. ЗАВДАННЯ 1. Створити *.exe програму, яка реалізовує обчислення, заданого варіантом виразу. Вхідні дані повинні вводитися з клавіатури, під час виконання програми в десятковому форматі зі знаком. Програма повинна складатися з двох модулів: головний модуль – створюється мовою С і має забезпечити ввід необхідних даних, виклик асемблерної процедури для обчислення виразу та вивід результату обчислень; модуль безпосередніх обчислень – здійснює всі необхідні арифметичні дії з використанням математичного співпроцесора; 2.Переконатися у правильності роботи кожного модуля зокрема та програми загалом. 3.Скласти звіт про виконану роботу з приведенням тексту програми та коментарів до неї. 4.Дати відповідь на контрольні запитання. ВАРІАНТИ ЗАВДАНЬ  Код програми: Main.cpp #include <stdio.h> #include <math.h> extern "C" float calc(float A,float C, float D); extern "C" { float A = 0; float C = 0; float D = 0; }; int main() { printf("if C > D -((lg(25+(2*A))/D)/(C+A-1)\n"); printf("if C <= D -((C+23)-(D+4)/(A-ln(A+(C/D)))\n"); printf("A = ");scanf_s("%f",&A); printf("C = ");scanf_s("%f",&C); printf("D = ");scanf_s("%f",&D); printf("asm: X = %f\n", calc(A,C,D)); // виклик файлу асм, ф-ції if (C> D) printf("c++: X = %f\n", ((log10(25+(2*A))/D))/(C+A-1)); else printf("c++: X = %f\n", (((C+23)-(D+4))/(A-log(A+(C/D))))); getchar();getchar(); return 0; }   Calc.asm .386 .model flat, c .data ;опис змінних Afl dd 0 Cfl dd 0 Dfl dd 0 tmp dd 0 tmp1 dd 0 .code calc proc push ebp mov ebp, esp mov eax,[ebp+8] mov Afl,eax mov eax,[ebp+12] mov Cfl,eax mov eax,[ebp+16] mov Dfl, eax fld Cfl fcomp Dfl fstsw ax sahf jbe var2 var1: (log10(25+(2*A))/D) fld Afl mov tmp,2 fild tmp fmul mov tmp,25 fild tmp fadd fstp tmp fld1 fld tmp fyl2x fldl2t fdivp ST (1),ST (0) fld Dfl fdiv fld Cfl fld Afl fadd fld1 fsub fdiv ;ділення: ((log10(25+(2*A))/D)) на (C+A-1) jmp next var2: fld Cfl fld Dfl fdiv fld Afl fadd fistp tmp fild tmp fld1 fldl2e fdivp fild tmp fyl2x fld Afl fsubr ;((C+23)-(D+4))) fld Cfl mov tmp,23 fild tmp fadd ;Cfl + 23 fld Dfl mov tmp,4 fild tmp fadd fsub ;((C+23)-(D+4))) віднімання fdivr ; ділення: ((C+23)-(D+4))) / (A-ln(A+(C/D)) next: pop ebp ret calc ENDP END   Результат виконання:   Висновок: Я оволодів навиками створення програм, частини яких написані різними мовами програмування Засвоїв правила взаємодії різних модулів.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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