- •Лабораторна робота 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 Машинні формати дійсних чисел
Як ми вже з'ясували, дійсні базові величини можуть бути типу float (single), double або long double (extended). Всі вони мають для зберігання комірки різної довжини. Звідси й різний діапазон представлення для різних типів дійсних чисел, хоча ідея зберігання майже та сама.
3.2.1. Формат 32 біти - float (або single)
Число це зберігається в комірці довжиною 32 біта, які розподіляються в такий спосіб:
|
|
прихований розряд |
|
|
|
|||
|
|
|
|
|
|
|
|
|
S |
Характеристика 7Fh ± порядок |
Нормалізована мантиса |
||||||
31 |
30 |
… |
23 |
22 |
21 |
… |
1 |
0 |
Біти |
На характеристику виділяються 8 бітів (розряди 23-30).
Максимально можливе шістнадцятирічне число, яке можна розмістити в цих бітах, дорівнює FFh, а його половина по визначенню - це зсув = 7Fh. Оскільки для мантиси залишається всього 23 біта (розряди 0-22), а ми знаємо, що мантиса завжди нормалізована, виникає цілком резонне питання: навіщо зберігати найпершу одиницю мантиси? Нехай комп'ютер сам її відновлює. Таким чином, ця найперша одиниця в інформаційні розряди мантиси не входить (схований розряд), а на мантису в результаті приділяється не 23 біти, а 24. Таке представлення дозволяє вірно відображати 7-8 десяткових цифр.
3.2.2. Формат 64 біти - double
|
|
прихований розряд |
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||
S |
Характеристика 3FFh ± порядок |
Нормалізована мантиса |
|||||||||||||||||
63 |
62 |
… |
53 |
52 |
51 |
… |
|
… |
2 |
1 |
0 |
||||||||
Біти |
Тут ідея та ж сама, що й у попередньому форматі представлення дійсних даних. На все число приділяється комірку довжиною 64 біта. На характеристику витрачаються 11 бітів (розряди 52-62). Максимально можливе число, яке можна розмістити в 11-ти бітах: 111 1111 111lb.
Звідси потрібно, щоб зсув дорівнював 011 1111 1111b - 3FFh.
Мантиса теж має прихований розряд.
3.2.3. Формат long double (extended)
S |
Характеристика 3FFFh ± порядок |
Нормалізована мантиса |
|||||||||
79 |
78 |
… |
65 |
64 |
63 |
… |
|
… |
2 |
1 |
0 |
Біти |
На все число приділяється 80 бітів. Цей формат є основним робочим форматом для даних співпроцесора. Тому, щоб не робити додаткових перетворень при обчисленнях, мантиса не має схованого розряду. На характеристику витрачаються 15 бітів (розряди 64-78). Максимально можливе число, яке можна розмістити в 15-ти бітах: 111 1111 1111 1111b. Звідси треба, що зсув дорівнював 011 1111 1111 1111b - 3FFFh.
У цьому форматі можна представити 19-20 десяткових цифр.