Link.exe /subsystem:console Lab1.obj.

Скопіювати вигляд налагоджувача у звіт можна, натиснувши клавіші PrtScr або Alt + PrtScr.

Потім треба викликати налагоджувач OllyDbg (http://cracklab.ru/_dl/new/ollydbg110xp.rar або www.ollydbg.de/ odbg200a.zip) та завантажити одержаний файл Lab1.exe (рис. 3.4).

 

 
 

 


На завершення, слід проаналізувати порядок розміщення даних у пам’яті комп’ютера та їх відповідність до адрес.

 

Для виконання завдання №2 необхідно згідно з варіантом із табл. 1 вибрати числа:

115. 3200. 115.3200

-115. -3200. -115.3200

0.115 0.32

-0.115 -0.32

 

Перевести одержані числа в шістнадцяткову систему числення.

Правильність одержаних результатів необхідно проконтролювати. Дійсні числа при своєму запису повинні мати точку у форматі числа.

Для цього напишемо програму з ім’ям, наприклад Lab1_2.asm (лістинг 3.4).

 

Лістинг 3.4. Програма подання дійсних чисел:

.386 ; директива визначення типу мікропроцесора

.model flat ; завдання лінійної моделі пам’яті

.data ; директива визначення даних

; дійсні числа в пам’яті розміром у 32 розряди

dd 115.

dd -115.

dd 0.115

dd -0.115

dd 3200.

dd -3200.

dd 0.32

dd -0.32

dd 115.3200

dd -115.3200

real4 115.

real4 -115.

; дійсні числа в пам’яті розміром у 64 розряди

dq 115.

dq -115.

dq 0.115

dq -0.115

dq 3200.

dq -3200.

dq 0.32

dq -0.32

dq 115.3200

dq -115.3200

real8 115.

real8 -115.

; дійсні числа в пам’яті розміром у 80 розрядів

dT 115.

dT -115.

dT 0.115

dT -0.115

dT 3200.

dT -3200.

dT 0.32

dT -0.32

dT 115.3200

dT -115.3200

real10 115.

real10 -115.

.code ; директива початку коду програми

_start: ; мітка початку програми з ім’ям start

ret ; повернення керування ОС

end _start ; закінчення програми з ім’ям _start

 

Як відомо, для одержання лістингу програми необхідно викликати файловий менеджер FAR та вже з нього відкомпілювати програму за допомогою компілятора з мови асемблеру MASM32, набравши в командному рядку команду

ml.exe /c /coff /Fl Lab1_2.asm <Enter>

Сторінка 1 лістингу програми Lab1_2.asm буде мати такий вигляд:

Microsoft (R) Macro Assembler Version 6.14.8444 09/03/08 15:40:46

Lab1_2.asm Page 1 - 1

.386 ; директива визначення типу мікропроцесора

.model flat ; завдання лінійної моделі пам’яті

00000000 .data ; директива визначення даних

; дійсні числа в пам’яті розміром у 32 розряди

00000000 42E60000 dd 115.

00000004 C2E60000 dd -115.

00000008 3DEB851F dd 0.115

0000000C BDEB851F dd -0.115

00000010 45480000 dd 3200.

00000014 C5480000 dd -3200.

00000018 3EA3D70A dd 0.32

0000001C BEA3D70A dd -0.32

00000020 42E6A3D7 dd 115.3200

00000024 C2E6A3D7 dd -115.3200

00000028 42E60000 real4 115.

0000002C C2E60000 real4 -115.

; дійсні числа в пам’яті розміром у 64 розряди

00000030 405CC00000000000 dq 115.

00000038 C05CC00000000000 dq -115.

00000040 3FBD70A3D70A3D71 dq 0.115

00000048 BFBD70A3D70A3D71 dq -0.115

00000050 40A9000000000000 dq 3200.

00000058 C0A9000000000000 dq -3200.

00000060 3FD47AE147AE147B dq 0.32

00000068 BFD47AE147AE147B dq -0.32

00000070 405CD47AE147AE14 dq 115.3200

00000078 C05CD47AE147AE14 dq -115.3200

00000080 405CC00000000000 real8 115.

00000088 C05CC00000000000 real8 -115.

; дійсні числа в пам’яті розміром у 80 розрядів

00000090 4005E600000000000000 dT 115.

0000009A C005E600000000000000 dT -115.

000000A4 3FFBEB851EB851EB851F dT 0.115

000000AE BFFBEB851EB851EB851F dT -0.115

000000B8 400AC800000000000000 dT 3200.

000000C2 C00AC800000000000000 dT -3200.

000000CC 3FFDA3D70A3D70A3D70A dT 0.32

000000D6 BFFDA3D70A3D70A3D70A dT -0.32

000000E0 4005E6A3D70A3D70A3D7 dT 115.3200

000000EA C005E6A3D70A3D70A3D7 dT -115.3200

000000F4 4005E600000000000000 real10 115.

000000FE C005E600000000000000 real10 -115.

00000000 .code ; директива початку коду програми

00000000 _start: ; мітка початку програми з ім’ям start

00000000 C3 ret ; повернення керування ОС

end _start ; закінчення програми з ім’ям start

 

Порядок розміщення дійсних чисел у пам’яті необхідно також проконтролювати за допомогою налагоджувача OllyDbg. Для цього треба одержати .exe-файл за допомогою команди

link.exe /subsystem:console Lab1_2.obj,

або, що й ще зручніше, – створити bat-файл, та вже при виконанні цього файла автоматично отримати зразу два файли: .obj та .exe. Такий bat-файл може мати вміст:

ml /c /coff /Fl "Lab1_2.asm"

link /SUBSYSTEM:CONSOLE "Lab1_2.obj"

Потім слід викликати налагоджувач OllyDbg та завантажити одержаний файл Lab1_2.exe (рис. 3.5).

На закінчення, треба проаналізувати порядок розміщення даних у пам’яті комп’ютера та їх відповідність до адрес.