![](/user_photo/2706_HbeT2.jpg)
- •2. Структура регістра eflags
- •3. Організація оперативної пам’яті. Сегментована модель оперативної пам’яті. Формування адреси в реальному режимі
- •4. Формати і типи даних. Формат машинних команд. Система переривань
- •5. Десяткова арифметика. Форми зображення десяткових чисел
- •7. Ділення ascii-чисел.
- •6. Директиви сегментації. Директиви proc і endp
- •7. Опис простих типів мовою асемблера
- •10. Синтаксис команд мовою асемблера
- •11. Команди передач даних
- •Xchg ax, data1; (data2) в data1, (ax) – початковий стан
- •12. Стекові передачі даних
- •13. Передачі адресних об’єктів, команди введення-виведення і передачі прапорців
- •14. Команди передачі даних movXx. Команда setCc. Команда xlat
- •15. Команди додавання, віднімання і порівняння
- •Inc reg/mem; Розмір 8/16/32.
- •16. Команди множення і ділення
- •20. Команди логічних операцій. Команди зсувів
- •22. Команди операцій з двійковими ланцюжками
- •23. Команди передачі керування (безумовні переходи)
- •24. Команди умовних переходів і команди керування циклами
- •26. Команди переривань і повернення з переривань
- •Загальні поняття.
- •Використання префіксів в ланцюжкових командах.
- •Команда movs.
- •Команда cmps.
- •Команда scas.
- •Команда lods.
- •Команда stos.
- •Команди введення/виведення ланцюжків.
- •29. Команди керування процесором
- •Команди, які впливають на прапорці.
- •Команди синхронізації.
- •Системні команди
- •31. Формати даних, які підтримуються fpu
- •Параметри для трьох форматів в таблиці
- •32. Програмна модель fpu
- •33. Слово стану sw і слово керування cw пристрою fpu.
- •Відповідність між кодом умови і прапорцями
- •34. Команди передач даних fpu: завантаження, збереження, збереження з вибором зі стека, обміну, завантаження сталих.
- •35. Арифметичні команди fpu: додавання, віднімання, множення, ділення.
- •36. Додаткові арифметичні команди fpu.
- •37. Команди порівняння fpu
- •38. Команди трансцендентних функцій. Алгоритми обчислення значень функцій і та логарифмів за будь-якою основою.
- •39. Команди керування пристроєм fpu
- •40. Спеціальні числові значення та особливі обчислювальні ситуації
Системні команди
Мікропроцесор має мало системних команд. Вони виконують порівняно прості функції: завантаження системних регістрів і збереження їх вмісту. Команди завантаження як правило привілейовані, а команди збереження припустимі на всіх рівнях привілеїв. Наведемо список команд:
lgdt mem48; Завантаження регістра gdtr
sgdt mem48; Збереження регістра gdtr
lidt mem48; Завантаження регістра idtr
sidt mem48; Збереження регістра idtr
lldt reg/mem16; Завантаження регістра ldtr
sldt reg/mem16; Збереження регістра ldtr
lmsw reg/mem16; Завантаження слова стану комп’ютера (молодші 16 бітів регістра cr0)
verr reg/mem16; Перевірка сегмента на читання
smsw reg/mem16; Збереження слова стану комп’ютера
verw reg/mem16; Перевірка сегмента на записування
lar reg16/32,reg/mem16/32; Завантаження прав доступу сегмента
lsl reg16/32,reg/mem16/32; Завантаження межі сегмента
arpl reg16/mem16,reg16; Корекція рівня привілеїв
31. Формати даних, які підтримуються fpu
Діапазон
нормалізованих чисел подвійної точності:
від
до
,0,
від
до
.
Зображувані числа на числовій прямій
розподілені не рівномірно. Фактично
між двома степенями двійки знаходиться
однакова кількість зображуваних чисел
(між 2 і 4 стільки ж скільки між 65536 і
131072). Отже зі збільшенням чисел проміжки
між ними зростають. Між двома числами
з плаваючою крапкою завжди є проміжок
і можливо істинний результат попаде на
цей проміжок. Тоді FPU
заокруглює істинний результат до такого
числа, яке можливо подати в оперативній
пам’яті.
У внутрішніх
операціях FPU
використовує числа діапазону: від
до
,
0, від
до
,
а точність до 19 десяткових розрядів. У
такому форматі подаються сталі і проміжні
результати. Порівняно з більшістю
комп’ютерів i486
забезпечує добре наближення дійсних
чисел. Однак важливо пам’ятати, що це
не точна арифметика і вона є принципово
наближеною.
Є сім зовнішніх форматів, якими оперує FPU. Ці формати утворюють три класи: двійкові цілі, упаковані десяткові цілі і двійкові дійсні числа (з плаваючою крапкою).
У всіх форматах старший лівий біт відведено для знаку числа: 0 – плюс, 1 – мінус. Старші розряди всіх чисел знаходяться зліва. ЦС – ціле слово, КЦ – коротке ціле, ДЦ – довге ціле, УПК – упаковане десяткове, ЩЕ – дійсне число одинарної точності, ПТ – дійсне подвійної точності, РТ – дійсне розширеної точності.
Основні характеристики форматів чисел
Формат Діапазон Точність Особливість
Ціле
слово ЦС
16
бітів Доповняльний
код
Коротке ціле КЦ
32
біти Доповняльний
код
Довге ціле
64
біти Доповняльний
код
Упаковане десяткове
УПК
18
цифр Прямий
код
Коротке дійсне
ОТ
24
біти Неявний
біт F0
Довге дійсне ПТ
53
біти Неявний біт F0
Тимчасове дійсне
РТ
64
біти Явний
біт F0
Двійкові цілі. Три формати (ЦС, КЦ, ДЦ) відрізняються тільки довжиною, а значить й діапазоном припустимих чисел. Подання в ОП ми вивчали. Формати лише в оперативній пам’яті. При завантаженні в FPU автоматично перетворюються у 80-бітовий формат РТ.
Упаковані десяткові цілі числа. Подаються в прямому коді і упакованому форматі: кожний байт містить дві десяткові цифри в коді 8421. Старший біт лівого байта відведено для знаку числа і решта його бітів ігнорується. При записуванні в ОП в них записуються нулі. В прямому коді з’являються два зображення нуля – додатній та від’ємний нулі, FPU їх не розрізняє. Якщо в тетраді є заборонені комбінації (від 1010b до 1111b), результат завантаження десяткового операнда не визначений, тобто FPU не контролює правильність десяткових цифр. Десятковий цілий формат існує тільки в ОП. При завантаженні в FPU такі числа автоматично перетворюються у 80-бітовий формат РТ. Усі десяткові числа точно зображувані в розширеному дійсному форматі.
Дійсні числа. Застосовується формат з плаваючою крапкою. Значущі цифри знаходяться в полі мантиси, поле порядку показує фактичне розташування двійкової крапки в розрядах мантиси, а біт знаку s визначає знак числа. Мантиса подається в прямому коді.
Параметр |
Одинарний |
Подвійний |
Розширений |
Довжина формату в бітах |
32 |
64 |
80 |
Довжина мантиси (точність) |
24 |
53 |
64 |
Довжина порядку (в бітах) |
8 |
11 |
15 |
|
+127 |
+1023 |
+16383 |
|
-126 |
-1022 |
-16382 |
Зміщення порядку |
+127 |
+1023 |
+16383 |