- •Лабораторна робота 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. Уведення з клавіатури
2.1 Цілі числа. Цілі числа без знака
Як видно з області припустимих значень для платформи Winl6, цілі числа без знака — це додатні числа (або нуль) і вони можуть займати 8, 16 або 32 біта пам'яті ПЕОМ. Вважається, що біт 0 — молодший біт (для зручності будемо вважати, що він розташований крайнім праворуч). Старший біт — 7 (15 або 31) — для зручності розташуємо крайнім ліворуч. Для беззнакових даних всі біти вважаються інформаційними.
Інформаційне поле числа (0,1) |
||||||||||||||||||
31 |
… |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Старший |
Біти |
Молодший |
2.2 Цілі числа зі знаком
Цілі знакові дані, по-перше, можуть бути як додатними, так і від’ємними, включаючи нуль, і, по-друге, вони по діапазону припустимих значень у два рази менше беззнакових (для додатних значень). Це відбувається, тому що старший біт завжди приділяється під знак. Він називається біт S -signum (знак):
S = 0 - для додатних чисел;
S = 1 - для від’ємних чисел.
S |
Інформаційне поле числа (0,1) |
||||||||||
31 |
… |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
знак |
Біти |
Увага, від’ємні числа представляються у пам’яті у додатковому коді, для отримання якого требі інвертувати число і додати 1 до молодшого розряду, наприклад переведемо -125 у додатковий код:
125d -> 0111 1101b
1000 0010b після інверсії
+1
-125d -> 1000 0011b
3 Дійсні числа.
Дійсні базові величини можуть бути типу float (single), double або long double (extended). Від платформи вони не залежать і обробляються співпроцесором. Внутрішнє (машинне) представлення цих чисел досить складне, S - як звичайно, знак числа:
S |
Характеристика |
Нормалізована мантиса |
|
Зсув ± Порядок |
|
Зсув — число, яке дорівнює половині максимально можливого, що може поміститися в поле „характеристика”. Таким чином, заощаджуються місце й час, тому що не потрібно виділяти розряд для знака порядку й робити додатковий код для від’ємних порядків.
3.1 Представлення дійсних чисел у двійковому нормалізованому виді.
Як відомо (див. самостійну роботу №1), для перетворення чисел із десяткової до двійкової системи числення використовуються два алгоритми:
для цілої частини – послідовне ділення на основу нової системи числення (2, 8, 16) і запис отриманих залишків у зворотному порядку;
для дрібної частини - послідовне множення на основу нової системи числення (2, 8, 16) і запис отриманих залишків у прямому порядку порядку;
Зворотне перетворення базується на визначенні позиційної системи числення
Одержавши двійкове число, потрібно його нормалізувати, тобто двійкове число повинне завжди починатися з одиниці й мати такий вигляд:
± 1. m2* 2p, (1)
де m2 - двійкова мантиса числа,
p - порядок двійкового числа.
У зв’язку з тим, що при перетворенні дрібної частини дійсних чисел лише в окремих випадках вдається закінчити множення на основу нової (у нашому випадку - двійкової) системи числення, неминуче виникає похибка перетворення, яку можна оцінити зробивше зворотне перетворення.
Err = | N1-N2 | (2)
ПРИКЛАД;
N1=2.107.
При прямому перетворенні у двійкову систему числення дрібної частини отримаємо
0.107d ->0.00011011011b
у нормалізованому виді
0.00011011011b =1.1011011*2-4
При зворотному перетворенні
0.00011011011b -> 0,10107421875
Похибка перетворення
Err=|0.107-0,10107421875 |=0,00592578125
Як бачимо, похибка перетворення значна, тому при виконанні лабораторної роботи слід отримати 15-20 двійкових розрядів для дрібної частини числа.