Написание модулей для DLE. Разработка приложений на фреймворке Kohana

Автор работы: Пользователь скрыл имя, 29 Марта 2013 в 15:16, курсовая работа

Краткое описание

Цель работы:
Получить практические навыки по использованию встроенного дизассемблера Borland C++, по использованию ассемблерных вставок в среде Borland C++ Builder.

Прикрепленные файлы: 1 файл

Лаба 1 СП_вар_3.docx

— 59.58 Кб (Скачать документ)

Министерство образования Республики Беларусь

 

Учреждение образования

«Белорусский Государственный  Университет Информатики и 

Радиоэлектроники»

 

 

Факультет компьютерного проектирования

 

Кафедра электронных вычислительных средств

 

 

 

 

 

Отчет по лабораторной работе № 1

 по  курсу СП по теме:

«работа в интегрированной среде разработки borland builder c++»

Вариант  №3

 

 

 

 

 

Выполнили:       Проверил:

студенты гр. 910702      Воронецкий И.А.

Астапенко К.А.

 

 

 

 

 

 

 

 

Минск 2013 

    1. Цель работы

Получить практические навыки по использованию встроенного  дизассемблера Borland C++, по использованию ассемблерных вставок в среде Borland C++ Builder.

    1. ход работы

 

1.1 Задание

 

Разработать приложение с графическим пользовательским интерфейсом  в среде Borland C++ Builder, которое будет выполнять действия над целыми числами в соответствии с вариантом:

 

 

 

1.2 Разработка приложения

 

Разработанный графический  интерфейс представлен на рисунке  ниже.

 


 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 1 – Форма приложения

 

Листинг программы (обработка нажатия кнопки «Пуск»):

void __fastcall TForm1::Button1Click(TObject *Sender)

{

int a, b, c, d ;

a=StrToInt(Edit1->Text);

b=StrToInt(Edit2->Text);

c=StrToInt(Edit3->Text);

d = a/b-(2*c);

Label4->Caption ="Result :=" + IntToStr(d);

}

 

Провели дизассемблирование полученного кода:

 

Unit1.cpp.14: : TForm(Owner)

00401AE1 66C745E80C00     mov word ptr [ebp-$18],$000c

00401AE7 8B4DD0           mov ecx,[ebp-$30]

00401AEA 33D2             xor edx,edx

00401AEC 8B45FC           mov eax,[ebp-$04]

00401AEF E820000000       call Forms::TForm::TForm(const Classes::TComponent *)

00401AF4 8345F411         add dword ptr [ebp-$0c],$11

Unit1.cpp.17: }

00401AF8 8B55D8           mov edx,[ebp-$28]

00401AFB 64891500000000   mov fs:[$00000000],edx

00401B02 8B45FC           mov eax,[ebp-$04]

00401B05 807DD700         cmp byte ptr [ebp-$29],$00

00401B09 7405             jz $00401b10

00401B0B E849170000       call $00403259

Unit1.cpp.17: }

00401B10 8BE5             mov esp,ebp

00401B12 5D               pop ebp

00401B13 C3               ret

Forms::TForm::TForm(const Classes::TComponent *):

00401B14 55               push ebp

00401B15 8BEC             mov ebp,esp

00401B17 83C4D0           add esp,-$30

00401B1A 8855F8           mov [ebp-$08],dl

00401B1D 84D2             test dl,dl

00401B1F 7E05             jle $00401b26

00401B21 E826170000       call $0040324c

00401B26 894DD0           mov [ebp-$30],ecx

00401B29 8855D7           mov [ebp-$29],dl

00401B2C 8945FC           mov [ebp-$04],eax

00401B2F B89C424000       mov eax,$0040429c

00401B34 E893130000       call $00402ecc

00401B39 66C745E80C00     mov word ptr [ebp-$18],$000c

00401B3F 8B4DD0           mov ecx,[ebp-$30]

00401B42 33D2             xor edx,edx

00401B44 8B45FC           mov eax,[ebp-$04]

00401B47 E8F41C0000       call $00403840

00401B4C 8345F410         add dword ptr [ebp-$0c],$10

00401B50 8B55D8           mov edx,[ebp-$28]

00401B53 64891500000000   mov fs:[$00000000],edx

00401B5A 8B45FC           mov eax,[ebp-$04]

00401B5D 807DD700         cmp byte ptr [ebp-$29],$00

00401B61 7405             jz $00401b68

00401B63 E8F1160000       call $00403259

Forms.hpp.1062:

00401B68 8BE5             mov esp,ebp

00401B6A 5D               pop ebp

00401B6B C3               ret

00401B6C 0400             add al,$00

00401B6E 0000             add [eax],al

00401B70 90               nop

00401B71 000C00           add [eax+eax],cl

00401B74 98               cwde

00401B75 1D40005446       sbb eax,$46540040

00401B7A 6F               outsd

00401B7B 726D             jb $00401bea

00401B7D 3120             xor [eax],esp

00401B7F 2A00             sub al,[eax]

00401B81 90               nop

00401B82 90               nop

00401B83 90               nop

Unit1.cpp.19: void __fastcall TForm1::Button1Click(TObject *Sender)

00401B84 55               push ebp

00401B85 8BEC             mov ebp,esp

00401B87 83C4B0           add esp,-$50

00401B8A 8955C0           mov [ebp-$40],edx

00401B8D 8945C4           mov [ebp-$3c],eax

00401B90 B850424000       mov eax,$00404250

00401B95 E832130000       call $00402ecc

Unit1.cpp.22: a=StrToInt(Edit1->Text);

00401B9A 66C745D80C00     mov word ptr [ebp-$28],$000c

00401BA0 8D45FC           lea eax,[ebp-$04]

00401BA3 E838010000       call System::UnicodeString::UnicodeString()

00401BA8 8BD0             mov edx,eax

00401BAA FF45E4           inc dword ptr [ebp-$1c]

00401BAD 8B4DC4           mov ecx,[ebp-$3c]

00401BB0 8B8198030000     mov eax,[ecx+$00000398]

00401BB6 E8391B0000       call $004036f4

00401BBB 8D45FC           lea eax,[ebp-$04]

00401BBE 8B00             mov eax,[eax]

00401BC0 E80F180000       call $004033d4

00401BC5 8945BC           mov [ebp-$44],eax

00401BC8 FF4DE4           dec dword ptr [ebp-$1c]

00401BCB 8D45FC           lea eax,[ebp-$04]

00401BCE BA02000000       mov edx,$00000002

00401BD3 E86C150000       call System::UnicodeString::~UnicodeString(System::UnicodeString * const ,int)

Unit1.cpp.23: b=StrToInt(Edit2->Text);

00401BD8 66C745D81800     mov word ptr [ebp-$28],$0018

00401BDE 8D45F8           lea eax,[ebp-$08]

00401BE1 E8FA000000       call System::UnicodeString::UnicodeString()

00401BE6 8BD0             mov edx,eax

00401BE8 FF45E4           inc dword ptr [ebp-$1c]

00401BEB 8B4DC4           mov ecx,[ebp-$3c]

00401BEE 8B819C030000     mov eax,[ecx+$0000039c]

00401BF4 E8FB1A0000       call $004036f4

00401BF9 8D45F8           lea eax,[ebp-$08]

00401BFC 8B00             mov eax,[eax]

00401BFE E8D1170000       call $004033d4

00401C03 8945B8           mov [ebp-$48],eax

00401C06 FF4DE4           dec dword ptr [ebp-$1c]

00401C09 8D45F8           lea eax,[ebp-$08]

00401C0C BA02000000       mov edx,$00000002

00401C11 E82E150000       call System::UnicodeString::~UnicodeString(System::UnicodeString * const ,int)

Unit1.cpp.24: c=StrToInt(Edit3->Text);

00401C16 66C745D82400     mov word ptr [ebp-$28],$0024

00401C1C 8D45F4           lea eax,[ebp-$0c]

00401C1F E8BC000000       call System::UnicodeString::UnicodeString()

00401C24 8BD0             mov edx,eax

00401C26 FF45E4           inc dword ptr [ebp-$1c]

00401C29 8B4DC4           mov ecx,[ebp-$3c]

00401C2C 8B81A0030000     mov eax,[ecx+$000003a0]

00401C32 E8BD1A0000       call $004036f4

00401C37 8D45F4           lea eax,[ebp-$0c]

00401C3A 8B00             mov eax,[eax]

00401C3C E893170000       call $004033d4

00401C41 8945B4           mov [ebp-$4c],eax

00401C44 FF4DE4           dec dword ptr [ebp-$1c]

00401C47 8D45F4           lea eax,[ebp-$0c]

00401C4A BA02000000       mov edx,$00000002

00401C4F E8F0140000       call System::UnicodeString::~UnicodeString(System::UnicodeString * const ,int)

Unit1.cpp.25: d = a/b-(2*c);

00401C54 8B45BC           mov eax,[ebp-$44]

00401C57 99               cdq

00401C58 F77DB8           idiv dword ptr [ebp-$48]

00401C5B 8B4DB4           mov ecx,[ebp-$4c]

00401C5E 03C9             add ecx,ecx

00401C60 2BC1             sub eax,ecx

00401C62 8945B0           mov [ebp-$50],eax

 

 

1.3 вывод

 

В ходе данной лабораторной работы провели разработку приложения для расчета заданного выражения в среде Borland C++ Builder и ознакомились с возможностями встроенного дизассемблера на примере полученного проекта. 

 


Информация о работе Написание модулей для DLE. Разработка приложений на фреймворке Kohana