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

ЗМІШАНЕ ПРОГРАМУВАННЯ НА МОВАХ С ТА АСЕМБЛЕР

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

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

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

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
СП
Варіант:
11

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

ЛАБОРАТОНА РОБОТА №2 ТЕМА:ЗМІШАНЕ ПРОГРАМУВАННЯ НА МОВАХ С ТА АСЕМБЛЕР Мета роботи: оволодіти навиками створення програм, частини яких написані різними мовами програмування. Засвоїти правила взаємодії між програмними модулями різних мов програмування Завдання: Створити *.exe програму, яка реалізовує обчислення, заданого варіантом виразу. Вхідні дані повинні вводитися з клавіатури, під час виконання програми в десятковому форматі зі знаком. Програма повинна складатися з двох модулів: головний модуль – створюється мовою С і має забезпечити ввід необхідних даних, виклик асемблерної процедури для обчислення виразу та вивід результату обчислень; модуль безпосередніх обчислень – здійснює всі необхідні арифметичні дії з використанням математичного співпроцесора; Переконатися у правильності роботи кожного модуля зокрема та програми загалом. Скласти звіт про виконану роботу з приведенням тексту програми та коментарів до неї. Дати відповідь на контрольні запитання. ВАРІАНТИ ЗАВДАНЬ № Вираз K  11 X=(A4-B2-K)*2+E4/4 311   Лістинг програми: //Модуль С #include <stdio.h> #include <conio.h> extrn "C" const dword k; extern "C" int calc(int,int,int); int main() { int a=0; int b=0; int e=0; int Result=0; printf("(A4-B2-K)*2+E4/4:\n\n");//4*(B2-C1)+D2/4+K printf("Please, enter your numbers:\n"); printf("A = "); scanf_s("%d",&a); printf("B = "); scanf_s("%d",&b); printf("E= "); scanf_s("%d",&e); Result=calc(a,b,e); printf("Result in ASM: %d\n",Result); printf("Result is C: %d\n", (a-b-k)*2+e/4); _getch(); } ;Модуль ASM .386 .model flat,c PUBLIC calc extern c k:dword .const PUBLIC k k dq 311 .code calc proc push ebp mov ebp,esp mov eax,dword ptr[ebp+8] ;записати в еах значення яке є в комірці [ebp+8] sub eax,dword ptr[ebp+12] ; відняти від [ebp+8] то що записано в [ebp+12] sub eax,k ;відняти К shl eax,1 ;1 зсув вліво(множення на 2) mov ebx,dword ptr[ebp+16]; записати в еах значення яке є в комірці [ebp+16] shr ebx,2 ;2 зсуви вправо (ділення на 4) add eax,ebx ;додати до еах ебх pop ebp ret calc endp end Висновок і результат роботи програми:  Висновок: познайомився з принципами роботи математичного співпроцесора і використав його можливості для обчислення арифметичних виразів.
Антиботан аватар за замовчуванням

10.03.2015 20:26

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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