- •Лабораторна робота 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. Уведення з клавіатури
4. Методичні вказівки з оформлення звіту
Звіт до лабораторної роботи винний містити:
тему лабораторної роботи;
формулювання мети і задач, що вирішуються в ході виконання роботи;
докладний звіт про роботові з одномірними та двомірними масивами;
висновки.
5. Критерії оцінювання.
На 3 бали: вміти дати відповіді на питання для самоконтролю та самоперевірки. Виконати завдання 1
На 4 бали: додатково виконати завдання 2
На 5 балів: додатково виконати завдання 3
6. Завдання на лабораторну роботу.
При рішенні прикладів і завдань необхідно:
а) скласти алгоритм рішення задачі
б) напроти відповідних елементів алгоритму записати команди асемблера
в) скласти програму (format pe) і відкомпілювати, при необхідності виправити синтаксичні помилки.
г) перевірити виконання програми в дебагері OllyDbg, при наявності помилок виправити текст програми і повторити дії по п. г)
д) змінити заголовок програми для компіляції модуля (format coff), додати відповідні зміни для одержання працездатного модуля для стикування з програмою на C++ (див. лабораторну роботу №2).
е) створити консольний проект на С++, додати отриманий модуль, скомпілювати додаток (див. лабораторну роботу №2).
ж) перевірити правильність роботи програми на різних наборах вхідних даних.
з) оформити звіт і зробити осмислені висновки по суті розв'язуваної задачі.
Завдання 1.
Виконати програми з прикладів 1, 2, 3. Перевірити коректність роботи програм в дебагері.
Завдання 2. Задано одномірний масив, що складається з 10 елементів визначеного типу. Знайти:
- максимальний елемент масиву;
- мінімальний елемент масиву;
- кількість додатних і від’ємних елементів;
- індекс першого елемента більше заданого.
- індекс останнього елемента менше заданого
Завдання 3. Задано двовимірний масив (8x8), що складається з елементів визначеного типу. Знайти:
- мінімальний елемент у заданому стовпці;
- максимальний елемент у заданому рядку;
- індекс мінімального елементу масиву;
- індекс максимального елементу масиву;
- суму елементів, що коштують на головній діагоналі.
7. Питання для самоперевірки
Особливості виконання досліджуваних базових команд процесора і80x86.
Команди безумовного переходу.
Команди умовного переходу. Організація розгалужень.
Різниця в організації умовних переходів для знакових і беззнакових даних.
Команди управління циклом.
Непряма адресація в програмах на асемблере.
Діапазон припустимих значень для цілих даних: char (DB), unsigned char (DB), short int (DW), unsigned short int (DW), int, unsigned int, unsigned long int (DD).
Особливості обробки одномірних масивів.
Особливості обробки двовимірних масивів.
Використання регістрів загального призначення для доступу до елементів масиву.
8. Література
1. Голуб Н. Г. Искусство программирования на Асемблере. Лекции и упражнения. – СПб.: ООО”ДиаСофтЮП”, 2002. – 656 с.
2. Магда. Ю. С. M12 Асемблер для процессоров Intel Pentium. – СПб.: Питер, 2006. – 410с.
3. Ирвин Кип. Язык асемблера для процессоров Intel, 4-е издание.: Пер с англ. – М.: Издательский дом ”Вильямс”, 2005. – 912с.