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

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

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

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

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

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

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт до вступної лабораторної роботи по курсу “Системного програмування Мета: Оволодіти навиками створення програм, частини яких написані різними мовами програмування Засвоїти правила взаємодії різних модулів Теоретична частина: Труднощі опису зв'язку програм мовою C і асемблерних програм полягає в тому, що різні версії мови C мають різні угоди про зв'язки і для більш точної інформації варто користатися посібником з наявної версії мови C. Більшість версій мови C забезпечують передачу параметрів через стек у зворотній (у порівнянні з іншими мовами) послідовності. Звичайно доступ, наприклад, до двох параметрів, переданих через стек, здійснюється в такий спосіб. Деякі версії мови C розрізняють великі і малі букви, тому ім'я асемблерного модуля повинне бути представлено в тому ж символьному регістрі, який використовують для посилання C-програми. У деяких версіях мови C потрібно, щоб асемблерні програми, що змінюють регістри DI і SI, записували їхній вміст у стек при вході і відновлювали ці значення зі стека при виході. Ассемблерні програми повинні повертати значення, якщо це необхідно, у регістрі AX (одне слово) чи в регістро парі DX:AX (два слова). Для деяких версій мови C, якщо ассемблерна програма встановлює прапор DF, те вона повинна скинути його командою CLD перед поверненням. Хід роботи: DOSSEG .MODEL SMALL .STACK 100h .DATA ;_A1 dw 1111h ;_A2 dw 1111h ;_B db 11h ;_C db 1 ;_D dw 1 ;_E db 1 _K dw 2513h ;_Temp1 dw 00h ;_Temp2 dw 00h ;_X dw .CODE _papa PROC PUBLIC _papa EXTRN _A:word,_B:byte,_C:byte,_D:byte,_E:word,_X:word,_Temp1:word,_Temp2:word mov ax,@data mov ds,ax mov al,_D mov ah,0 cmp _D,0 jge sd mov ah,0FFh sd: mov bx,_E add ax,bx mov bx,_K sub ax,bx mov dx,00 mov bl,_C mov bh,0 cmp _C,0 jge sk mov bh,0FFh sk: imul bx mov _Temp2,ax mov ax,_A idiv _B mov bx, 0 mov bl,al mov _B,al cmp _B,0 jge sll mov bh,0FFh sll: add bx,_Temp2 mov _X,bx ret _papa ENDP _my_calk PROC PUBLIC _my_calk EXTRN _ero:PROC call near ptr _ero ret _my_calk ENDP End #include <stdlib.h> #include <stdio.h> #include <conio.h> extern short papa(void); extern void my_calk(void); void ero(void); unsigned char C[2],B[2],D[2]; short X,Temp1,Temp2,A,E; int main() { X=0; printf ("\nX=A/B+C*(D+E-K)\n"); printf("B="); scanf("%d",&B); printf("D="); scanf("%d",&D); printf("C="); scanf("%d",&C); printf("A="); scanf("%d",&A); printf("E="); scanf("%d",&E); //X=A/B+C[0]*(D-E[0]+K); papa(); my_calk(); getch(); return 0; } void ero() { printf ("A/B+C*(D+E-K)=%d\n",X); } Висновок: На даній лабораторній роботі я навчилася оволодівати навиками створення програм, частини яких написані різними мовами програмування і засвоїла правила взаємодії різних модулів.
Антиботан аватар за замовчуванням

31.03.2013 15:03

Коментарі

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

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

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

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

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

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

Admin

26.02.2019 12:38

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

Новини