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

змішане програмування на мовах с та асемблер

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

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

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

Рік:
2016
Тип роботи:
Лабораторна робота
Предмет:
Системне програмування та операційні системи
Група:
КІ 31
Варіант:
19

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

Міністерство освіти і науки Національний університет «Львівська політехніка» Кафедра ЕОМ Звіт до лабораторної роботи № 3 з дисципліни: “Системне програмування” на тему: змішане програмування на мовах с та асемблер Варіант - 19 ЗМІШАНЕ ПРОГРАМУВАННЯ НА МОВАХ С ТА АСЕМБЛЕР Мета: Оволодіти навиками створення програм частини яких написані різними мовами програмування. Засвоїти правила взаємодії між різними програмними модулями ТЕОРИТИЧНІ ВІДОМОСТІ: /ЗАВДАННЯ / / ВАРІАНТ ЗАВДАННЯ: № Вираз К  19 A2 * 4 + C1 – D2/2 + K  4019   ТЕКСТИ ПРОГРАМ: calc1.asm .386 .model flat,c .data .code calc PROC push ebp ; збереження вершини стеку для відновлення mov ebp,esp ;////////////////////////////////////// mov eax, dword ptr [ebp+8] ;дістаємо A mov ecx, 4 mul ecx add eax, dword ptr [ebp+12] ;дістаємо C mov ecx, eax mov eax, dword ptr [ebp+16] ;дістаємо D mov ebx, 2 mov edx, 0 div ebx ;операція D/K sub ecx, eax mov eax, ecx add eax, dword ptr [ebp+20] ;дістаємо константу К ;////////////////////////////////////// pop ebp ; відновлення стека ret calc ENDP END main1.asm #include <stdio.h> extern "C" int calc(short, char, short, int); void main() { const int K = 4019; short A, D; char C; printf("Enter numbers:\n"); printf("A = "); scanf("%hd", &A); printf("C = "); scanf("%hhd", &C); printf("D = "); scanf("%hd", &D); printf("A * 4 + C - D/2 + K = %d\n", calc(A, C, D, K)); } Результат виконання 1 програми: / calc2.asm .386 .model flat,c .data text BYTE "Result = %d", 10, 13, 0 .code EXTRN printf : proc ;підключення функції printf calc PROC push ebp ; збереження вершини стеку для відновлення mov ebp,esp ;////////////////////////////////////// mov eax, dword ptr [ebp+8] ;дістаємо A mov ecx, 4 mul ecx add eax, dword ptr [ebp+12] ;дістаємо C mov ecx, eax mov eax, dword ptr [ebp+16] ;дістаємо D mov ebx, 2 mov edx, 0 div ebx ;операція D/K sub ecx, eax add ecx, dword ptr [ebp+20] ;дістаємо константу К ;////////////////////////////////////// lea ebx, text push ecx push ebx call printf ;виклик printf (ebx, ecx) ;////////////////////////////////////// pop ebx pop ecx pop ebp ret calc ENDP END main2.asm #include <stdio.h> extern "C" int calc(short, char, short, int); void main() { const int K = 4019; short A, D; char C; printf("Enter numbers:\n"); printf("A = "); scanf("%hd", &A); printf("C = "); scanf("%hhd", &C); printf("D = "); scanf("%hd", &D); calc(A, C, D, K); } Результат виконання 2 програми: / ВИСНОВОК: На даній лабораторній роботі я оволодів навиками створення програм частини яких написані різними мовами програмування. Засвоїти правила взаємодії між різними програмними модулями.
Антиботан аватар за замовчуванням

05.11.2016 21:15

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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