- •Лабораторна робота 1.
- •1. Символи.
- •2 Представлення чисел у пам’яті пеом.
- •2.1 Цілі числа. Цілі числа без знака
- •2.2 Цілі числа зі знаком
- •3 Дійсні числа.
- •3.1 Представлення дійсних чисел у двійковому нормалізованому виді.
- •3.2 Машинні формати дійсних чисел
- •3.2.1. Формат 32 біти - float (або single)
- •3.2.2. Формат 64 біти - double
- •4. Завдання на лабораторну роботу.
- •5. Методичні вказівки з оформлення звіту
- •6. Рішення типового прикладу (без оцінки похибки перетворення)
- •7. Питання для самоперевірки
- •8. Література
- •Лабораторна робота 2.
- •1. 3 Формати файлів, що виконуються, які підтримуються у fasm
- •2. Завдання на лабораторну роботу:
- •3. Методичні вказівки з оформлення звіту
- •4. Питання для самоперевірки.
- •Лабораторна робота 3.
- •1. Підготовка до роботи.
- •2. Питання для самоконтролю.
- •3. Короткі теоретичні відомості.
- •3.1 Команди пересилання даних.
- •3.1.3 Операції зі стеком:
- •3.2 Робота із налагоджувачем OllyDbg.
- •3.2.2. Розглянемо основні команди меню OllyDbg.
- •4. Завдання на лабораторну роботу.
- •9. Література
- •Лабораторна робота 4.
- •3.2. Операції із прапорами процесора:
- •3.3 Команди розповсюдження знаку
- •4. Методичні вказівки з оформлення звіту
- •5. Рішення типового прикладу.
- •6. Завдання на лабораторну роботу
- •7. Критерії оцінювання.
- •8. Питання для самоперевірки
- •9. Література
- •Лабораторна робота 5.
- •3.2. Команди зсуву
- •3.3 Команди сканування бітів
- •4. Методичні вказівки з оформлення звіту
- •5. Приклади використання бітових команд
- •6. Завдання на лабораторну роботу
- •7. Критерії оцінювання.
- •8. Питання для самоперевірки
- •9. Література
- •Лабораторна робота 6.
- •1. Підготовка до роботи.
- •2. Питання для самоконтролю.
- •3. Короткі теоретичні зведення.
- •3.1. Команди безумовної передачі управління
- •3.1.1. Команда безумовного переходу jmp
- •3.2. Команди умовної передачі управління Jcc
- •3.2.1. Перша група команд умовного переходу.
- •3.2.2 Друга група команд умовного переходу.
- •3.2.3. Третя група команд умовного переходу.
- •3.3. Команди управління циклами looPx
- •3.3.1. Команда loop — перехід по лічильнику
- •3.3.2. Команда loope (loopz) перехід по лічильнику і якщо дорівнює
- •3.3.3. Команда loopne (loopnz) перехід по лічильнику і якщо не дорівнює
- •4. Методичні вказівки з оформлення звіту
- •5. Приклади використання бітових команд
- •6. Завдання на лабораторну роботу.
- •7. Критерії оцінювання.
- •8. Питання для самоперевірки
- •9. Література
- •Лабораторна робота 7.
- •1. Підготовка до роботи.
- •2. Питання для самоконтролю.
- •3. Короткі теоретичні відомості.
- •3.1. Реалізація основних операцій по обробці масивів мовою асемблера.
- •4. Методичні вказівки з оформлення звіту
- •5. Критерії оцінювання.
- •6. Завдання на лабораторну роботу.
- •7. Питання для самоперевірки
- •8. Література
- •Лабораторна робота 8.
- •1. Підготовка до роботи.
- •2. Питання для самоконтролю.
- •3. Короткі теоретичні відомості.
- •4. Приклади виконання деяких типових задач обробки рядків
- •4. Завдання на лабораторну роботу.
- •Лабораторна робота 9.
- •1. Підготовка до роботи.
- •2. Питання для самоконтролеві.
- •3. Короткі теоретичні відомості
- •3.1. Принципи організації підпрограм
- •3.2. Параметри процедур і значення, що повертаються
- •3.3. Використання загальних перемінних у процедурах
- •3.4. Особливості fasm по організації підпрограм (Windows - додатка).
- •Лабораторна работа 10-11.
- •3.1.2. Засобу bios
- •3.2. Уведення з клавіатури
6. Завдання на лабораторну роботу
При рішенні прикладів і завдань необхідно:
а) скласти алгоритм рішення задачі
б) напроти відповідних елементів алгоритму записати команди асемблера
в) скласти програму (format pe) і відкомпілювати, при необхідності виправити синтаксичні помилки.
г) перевірити виконання програми в дебагері OllyDbg, при наявності помилок виправити текст програми і повторити дії по п. г)
д) змінити заголовок програми для компіляції модуля (format coff), додати відповідні зміни для одержання працездатного модуля для стикування з програмою на C++ (див. лабораторну роботу №2).
е) створити консольний проект на С++, додати отриманий модуль, скомпілювати додаток (див. лабораторну роботу №2).
ж) перевірити правильність роботи програми на різних наборах вхідних даних.
з) оформити звіт і зробити осмислені висновки по суті розв'язуваної задачі.
Варіанти завдань.
1) Скласти програму для дослідження роботи логічних команд. Проаналізувати поводження прапорів.
2) Скласти програму для дослідження команд зсувів. Проаналізувати поводження прапорів.
а) скласти програму для дослідження простих зсувів.
б) скласти програму для дослідження циклічних зсувів.
3) Скласти програму, що аналізує поводження визначеного біта (декількох біт) у цілому числі. Проаналізувати поводження прапорів.
а) використовувати маску відповідно до таблиці 3.
б) використовувати команди роботи з бітами.
в) перевірити роботу команди bswap.
Таблиця 3 - Варіанти завдань.
Варіант |
а |
b |
с |
Команди зсувів |
Швидка арифметика |
bswap |
|
1 |
еах |
meml |
есх |
eax |
1,2; 8 |
*2; /32 |
eax |
2 |
mem2 |
edx |
meml |
edx |
1,2; 7 |
*4; /16 |
edx |
3 |
meml |
ebx |
еах |
ecx |
1,2; 6 |
*8; /8 |
ecx |
4 |
meml |
mem2 |
edx |
ebx |
1,2; 5 |
*16; /4 |
ebx |
5 |
есх |
edx |
meml |
edi |
1,2; 4 |
*32; /2 |
edi |
|
маска для перевірки групи бітів |
маска одного біта |
|||||
1 |
біти (b): 1,3,7,8,10,20,24,28 |
біт (a): 3; 25 |
|||||
2 |
біти (c): 3,5,9,15,17,21,28,31 |
біт (b): 5; 27 |
|||||
3 |
біти (a): 2,6,8,13,19,22,29,30 |
біт (c): 7; 29 |
|||||
4 |
біти (b): 0,6,7,11,18,25,27,31 |
біт (c): 9; 31 |
|||||
5 |
біти (c): 1,4,10,14,22,26,27,31 |
біт (a): 11;23 |
|||||
Примітка: для варіантів 1-5: a, b – операнди, c – результат; для варіантів 6-10: a, c – операнди, b – результат; для варіантів 11-15: b, c – операнди, a – результат;
|
7. Критерії оцінювання.
На 3 бали:
Вміти дати відповіді на питання для самоконтролю та самоперевірки. Виконати завдання 1 та 2а.
На 4 бали:
Виконати завдання 1, 2, 3б.
На 5 балів:
Виконати завдання 1-3 у повному обсязі