- •Лабораторна робота 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. Завдання на лабораторну роботу.
Розробити програму:
а) для конкатенації рядків;
б) для копіювання масиву даних.
Розробити програму для порівняння двох рядків.
Розробити програму
а) підрахунку кількості входжень підрядку в рядок.
б) підрахунку кількості визначеного символу в рядку.
4. Розробити програму
а) реверсування рядка
б) заміни регістра символів
5. Розробити програму обробки масивів рядків – за завданням два рядки міняються місцями.
5. Методичні вказівки з оформлення звіту
Звіт до лабораторної роботи повинен містити:
тему лабораторної роботи;
формулювання мети і задач, що вирішуються в ході виконання роботи;
докладний звіт про використання ланцюгових команд;
висновки.
7. Критерії оцінювання.
На 3 бали:
Вміти дати відповіді на питання для самоконтролю та самоперевірки. Виконати завдання 1
На 4 бали:
Виконати завдання 2, 3
На 5 балів:
Виконати завдання 4, 5
8. Питання для самоперевірки
Які групи ланцюгових команд ви знаєте?
Як працює команда rep?
Який прапор відповідає за напрямок зміни адрес приймача та джерела?
9. Література
1. Голуб Н. Г. Искусство программирования на Ассемблере. Лекции и упражнения.- СПб.: ООО”ДиаСофтЮП”, 2002. – 656 с.
2. Магда. Ю. С. M12 Ассемблер для процессоров Intel Pentium. – СПб.: Питер, 2006. – 410с.
3. Ирвин Кип. Язык ассемблера для процессоров Intel, 4-е издание.: Пер с англ. – М.: Издательский дом ”Вильямс”, 2005. – 912с.
Лабораторна робота 9.
Тема: Процедури мовою асемблера
Ціль: Ознайомиться з особливостями організації процедур на асемблері і способами предачі параметрів у процедури.
1. Підготовка до роботи.
Ознайомитися із правилами організації процедур і способами преедачы параметрів до процедур. Згадати принцип роботи стеку [1, стор. 188-197], [2, стор. 93-120].
2. Питання для самоконтролеві.
За яким правилом отримуються дані зі стеку?
Назвіть мінімальну одиницю інформації, якові можна записати в стек.
Назвіть два способи передачі параметрів із основної програми в підпрограму.
Що знаходиться на вершині стеку в момент виклику підпрограми?
3. Короткі теоретичні відомості
У більшості програм зустрічаються фрагменти програмного коду, який потрібно неодноразово виконувати і, отже, повторювати ту саму послідовність команд. Такі фрагменти програмного коду доцільно виділити з програми, оформивши у виді підпрограм або процедур, і звертатися до них усякий раз, коли основній програмі буде потрібно їхнє виконання.
Надалі терміни “підпрограма” і “процедура” будуть використовуватися як синоніми (процедура є однієї з форм реалізації підпрограми). Скрізь у цій лекції і далі будемо вважати терміни “підпрограма” і “процедура” тотожними і думати, що обоє вони представляють групу команд, укладених між директивами ргос і endp. Стосовно підпрограми, або процедурі, іншу частину програми прийнято називати основною або зухвалою програмою. Ця лекція присвячена принципам розробки підпрограм (процедур) мовою асемблера.
Можна застосовувати й альтернативний синтаксис, коли процедура оформляється у виді ділянки коду, укладеного між міткою, по імені якої вона буде викликатися, і інструкцією ret.
Стандартним способом виклику процедури служить інструкція call.
Підпрограми можуть знаходитися як у файлі основної програми, що виконується, так і в окремому об'єктному файлі, що включається у файл основної програми за допомогою компоновщика. Це означає, що вихідний текст підпрограми може міститися у файл із розширенням ASM і компілюватися автономно у файл об'єктного модуля, що має розширення OBJ.