36942

Оволодіти навиками створення програм, частини яких написані різними мовами програмування. Засвоїти правила взаємодії різних модулів

Лабораторная работа

Информатика, кибернетика и программирование

Звичайно доступ наприклад до двох параметрів переданих через стек здійснюється в такий спосіб: PUSH EBP MOV EBPESP MOV EX[EBP8] MOV EDX[EBP12] . POP EBP RET Деякі версії мови C розрізняють великі і малі букви тому ім'я асемблерного модуля повинне бути представлено в тому ж символьному регістрі який використовують для посилання Cпрограми.code _clc proc push ebp mov ebpesp mov ex[ebp16] shr ex01 mov ebx[ebp8] shl ebx02 sub ebxex sub ebx[ebp12] sub ebx[ebp8] mov ex[ebp20] dd exebx pop ebp ret _clc endp END ...

Украинкский

2013-09-23

169.07 KB

3 чел.

Міністерство освіти і науки, молоді та спорту України

Національний університет “Львівська політехніка”

Кафедра ЕОМ

Лабораторна робота №2
дисципліни:”
Системне програмування

Виконав:

Ст.. гр. –КІ-32

Приймак Д.В.

Перевірив:

 Олексів М.В.

                      

Львів – 2011


Мета: оволодіти навиками створення програм, частини яких написані різними мовами програмування. Засвоїти правила взаємодії різних модулів 

Теоретичні відомості :

Труднощі опису зв'язку програм мовою C і асемблерних програм полягає в тому, що різні версії мови C мають різні угоди про зв'язки і для більш точної інформації варто користатися посібником з наявної версії мови C.

  1.  Більшість версій мови C забезпечують передачу параметрів через стек у зворотній (у порівнянні з іншими мовами) послідовності. Звичайно доступ, наприклад, до двох параметрів, переданих через стек, здійснюється в такий спосіб:

PUSH EBP

MOV EBP,ESP

MOV EAX,[EBP+8]

MOV EDX,[EBP+12]

...

POP EBP

RET

  1.  Деякі версії мови C розрізняють великі і малі букви, тому ім'я асемблерного модуля повинне бути представлено в тому ж символьному регістрі, який використовують для посилання C-програми.
  2.  У деяких версіях мови C потрібно, щоб асемблерні програми, що змінюють регістри EDI і ESI, записували їхній вміст у стек при вході і відновлювали ці значення зі стека при виході.
  3.  Ассемблерні програми повинні повертати значення, якщо це необхідно, у регістрі EAX (подвійне слово) чи в регістровій парі EDX:EAX (8 слів).
  4.  Для деяких версій мови C, якщо ассемблерна програма встановлює прапор DF, те вона повинна скинути його командою CLD перед поверненням.

Щоб скомпонувати разом модулі C++ і Макро асемблера, повинні бути дотримані наступні три умови:

  1.  У модулях Макро Асемблера повинні використовуватися угоди про імена, прийняті в C++.
  2.  C++ і Макро Асемблер повинні спільно використовувати відповідні функції й імена змінних у формі, прийнятної для C++.
  3.  Для комбінування модулів у виконувану програму потрібно використовувати утіліту-компоновщик (TLINK, LINK тощо).

.

Завдання:

  1.  Створити дві програми. Прша програма реалізує взаємовиклики С – ASM та здійснює обчислення, заданого виразу, згідно варіанту. Програма повинна складатися з кількох  модулів, передача параметрів між якими здійснюється через стек.

Основний модуль – створюється мовою С.

Він повинен забезпечувати:

  1.  ввід даних з клавіатури;
  2.  виклик підпрограми обчислення виразу;
  3.  вивід на екран результату обчислення виразу.

Модуль безпосередніх обчислень – здійснює всі обчислення виразу. Створюється  мовою Assembler.

  1.  Друга програма реалізує взаємовиклики С – ASM – С та здійснює обчислення, заданого виразу, згідно варіанту. Програма повинна складатися з кількох  модулів, передача параметрів між якими здійснюється через стек.

Основний модуль – створюється мовою С.

Він повинен забезпечувати:

  1.  ввід даних з клавіатури;
  2.  виклик підпрограми обчислення виразу;

Модуль безпосередніх обчислень – здійснює всі обчислення і вивід на екран результату обчислення виразу викликом стандартної функції printf() . Створюється мовою Assembler.

Варіант №22 : 

22

X=K-B1-C1-D2/2+4*B1

45781022

Виконання роботи :

Коди програм :

 

# include <stdio.h>

extern "C" int calc(char B, char C, short D, int K);

int K = 0x45781022;

char B,C;

short D;

int Result;

void main()

{

printf("Please enter your numbers \n");

printf("B = ");

scanf("%d",&B);

printf("C = ");

scanf("%d",&C);

printf("D = ");

scanf("%d",&D);

 

Result = calc(B,C,D,K);

printf("Result = %ld", Result);

 

}

.586

.model flat

public _calc

.data

.code

_calc proc

push ebp

mov ebp,esp

mov eax,[ebp+16]

shr eax,01

 

mov ebx,[ebp+8]

shl ebx,02

sub ebx,eax

sub ebx,[ebp+12]

sub ebx,[ebp+8]

mov eax,[ebp+20]

add eax,ebx

pop ebp

ret

_calc endp

END

# include <stdio.h>

extern "C" int calc(char B, char C, short D, int K);

int K = 0x45781022;

char B,C;

short D;

int Result;

void main()

{

printf("Please enter your numbers \n");

printf("B = ");

scanf("%d",&B);

printf("C = ");

scanf("%d",&C);

printf("D = ");

scanf("%d",&D);

 

Result = calc(B,C,D,K);

}

.586

.model flat,C

public calc

.data

PrintRezult BYTE "Result is %d",10,13,0

.code

printf  PROTO  printlist: VARARG

calc proc

push ebp

mov ebp,esp

mov eax,[ebp+16]

shr eax,01

 

mov ebx,[ebp+8]

shl ebx,02

sub ebx,eax

sub ebx,[ebp+12]

sub ebx,[ebp+8]

mov eax,[ebp+20]

add eax,ebx

invoke printf, ADDR PrintRezult, eax

pop ebp

ret

calc endp

END

Висновок : на даній лабораторній роботі я оволодів навиками створення програм, частини яких написані різними мовами програмування. Засвоїв правила взаємодії різних модулів


 

А также другие работы, которые могут Вас заинтересовать

31157. Каковы психологические предпосылки распространения слухов 21.5 KB
  Чувство солидарности человека распространяющего слух.Слух как стремление человека найти союзников.Личная неприязнь злоба на определенного человека. Такой мотив побуждает человека распространять негативные слухи о своем недруге .
31158. Каковы разновидности слухов? Приведите примеры различных видов 23 KB
  Такие слухи не создаются целенаправленно возникают спонтанно.По эмоциональной характеристике: 1Слухжелание такой слух обычно выдает желаемое за действительное. Этот слух люди сами того не осознавая ждут и поэтому с легкостью ему верят.
31159. Что такое внушение 24 KB
  Непосредств словесного воздействие эмоц насыщенным, повелительным тоном. Словесная формула: прямая речь, обращенная к объекту воздействия. В ней выражается требуемое поведение либо состояние, кот должно наступать сразу же после высказанных слов.
31160. Расскажите о приемах внушения 24.5 KB
  вызвать через преподносимый образ понятие лозунг идею ассоциацию с чемлибо или кемлибо имеющим в глазах объекта бесспорный престиж ценность чтобы сделать содержание воздействия приемлемым. Заключается в цитировании высказываний личности кот уважает или наоборот ненавидит объект воздействия. Этот способ заключается в побуждении объекта воздействия принять содержащуюся в инфе идею суждение оценку мнение на том основании что якобы большинство представителей данной соц группы или воинского подразделения разделяют ее.
31161. Что такое внушаемость и каковы условия ее повышения 22.5 KB
  Условия повышающие внушсть: 1пребывание в большой группе людей. 3псих состояние внушаемого внуш легче осущ когда индивид наход в расслабленном состоянии или в сост психич возбуждения. 4Воздействие на органы чувств: Внушающие цвета: красный приводит к возбуждению фиол и синий подавляет.
31162. Расскажите о природе и формах конформизма 21.5 KB
  2 вида: 1уступчивость готовность действовать так как говорят и действуют другие члены группы не затрагивающие личные убеждения этого чека.Нормативные условия когда индивид с помощью группы хочет избежать суждения или наказания 2.Условия привлекательности группы если члены группы симпатичны в группе прочные связи; если группа противостоит другой; если группа отвергается обществом Сочувствие и желание выделиться толкает людей вливаться в эти группы.
31163. Что такое подражание? Каков его механизм 22.5 KB
  Объекты и условия подражания: 1Подражание группе конформизм способ воздействия в результате кот индивид меняет свое поведение и псих состояние в соответствии с поведением и состоянием группы. 2 вида: 1уступчивость готовность действовать так как говорят и действуют др члены группы не затрагивающие личные убеждения этого чека.Нормативные условия индивид с помощью группы хочет избежать суждения или наказания 2.Условия привлекательности группы если члены группы симпатичны в группе прочные связи; если группа противостоит другой; если...
31164. Кому и чему подражают люди 21.5 KB
  Эксперимент аподражают тому кто сам явл положит подкреплением кто симпатичен или тот кто доступен бподражают тому кто положительно подкрепляет хвалит Предмет подражания: 1.Люди старшего возраста подражают правилам поведения традициям от1325 скорее будут подражание личности; от 2535 менее они более самодостаточные.
31165. Каковы характеристики образа вожака толпы 22.5 KB
  Харакки вожака: Наличие группы людей. Главная задача вожака создать веру религ политич соц или веру в какоенибудь дело чека или идею6Вожакине мыслители это люди действия.Принцип воздействия вожака на топу: Сильная вера одержимость идеей сила воли.