- •Лабораторна робота 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. Уведення з клавіатури
3.2.3. Третя група команд умовного переходу.
У цю групу входять команди jcxz і jecxz. Вони, на відміну від попередніх команд, перевіряють не прапори, а вміст регістра сх на нуль. Це дуже важливі команди, що використовуються при організації циклів.
Синтаксис:
jcxz коротка_мітка
jecxz коротка_мітка
Рис.1. Логіка роботи команди jcxz.
3.3. Команди управління циклами looPx
Команди цього виду організують циклічні обчислення (loop — цикл), використовуючи регістр лічильника eсх (cx) по своєму прямому призначенню (counter — лічильник). У регістр eсх (cx) повинне бути попередньо занесена кількість повторень циклу. Ці команди реалізують класичний цикл із лічильником з післяумовою.
3.3.1. Команда loop — перехід по лічильнику
Синтаксис команди:
loop коротка_мітка
Команда loop зменшує вміст регістра eсх на 1, потім передає управління мітці коротка_мітка, якщо вміст eсх не дорівнює 0.
Оскільки умова виходу з циклу перевіряється наприкінці, при значенні counter=0 цикл усе рівно виконається, при цьому, ми ще і зациклимося. Щоб цього уникнути, звичайно до початку циклу перевіряють уміст регістра eсх на нуль.
Таким чином, стандартна послідовність команд для організації циклу з лічильником має такий вигляд:
mov ecx, [counter]
jcxz ExitCicle; якщо <ECX> = 0, цикл обійти
short_label:
; Виконання тіла циклу
loop short_label
Рис.2. Алгоритм роботи команди loop
3.3.2. Команда loope (loopz) перехід по лічильнику і якщо дорівнює
Дана команда має два рівнозначних мнемонічних імена (if equal — якщо дорівнює або if zero — якщо нуль).
Синтаксис команди:
loope коротка_мітка
loopz коротка_мітка
Спрощений алгоритм роботи команди loope (loopz) приведений на рисунку 3, опущені блоки ініціалізації і зменшення лічильника.
Усі те, що говорилося для команди loop, справедливо і для команди loope (loopz), додається ще перевірка прапора ZF. Застосовується дана команда у випадку, якщо потрібно достроково вийти з циклу, як тільки знаходиться перший елемент, відмінний від заданої величини.
Рис.3. Спрощений алгоритм роботи команди loope (loopz).
3.3.3. Команда loopne (loopnz) перехід по лічильнику і якщо не дорівнює
Дана команда теж має два рівнозначних мнемонічних імена (if not equal — якщо не дорівнює або if not zero — якщо не нуль). На відміну від попередньої команди перевіряється, скинутий чи ні прапор нуля (ZF=0?).
Синтаксис команди:
loopne коротка_мітка
loopnz коротка_мітка
Рис.4. Спрощений алгоритм роботи команди loopne (loopnz).
Спрощений алгоритм роботи команди loopne (loopnz) приведений на рисунку 4, опущені блоки ініціалізації і зменшення лічильника.
Усі те, що говорилося для попередньої команди, справедливо і для команди loopne (loopnz). Застосовується дана команда у випадку, якщо потрібно достроково вийти з циклу, як тільки знаходиться перший елемент, дорівнює заданій величині.
4. Методичні вказівки з оформлення звіту
Звіт до лабораторної роботи повинен містити:
тему лабораторної роботи;
формулювання мети і задач, що вирішуються в ході виконання роботи;
докладний про хід виконання завдання, із наведенням: алгоритмів, текстів програм, умістом комірок пам’яті та регістрів мікропроцесора, що були отримані у дебагері;
осмислені та аргументовані висновки.