p>
Величина в індексному регістрі може бути отмаштабірована (помножена) коефіцієнту чи 1,2,4 або 8, що дає можливість робити посилання на елементи масиву або запису відповідної довжини. Величина відхилення може мати розрядність 8 або 32 біт і інтерпретується процесспром як величина зі знаком в додатковому коді.
Розумні комбінації бази, індексу і відхилення дають наступні способи адресації пам'яті 80386:
- пряма: використовується тільки відхилення;
- регістрівая непряма: використовується тільки база;
- базова: використовується база + відхилення;
- індексна: використовується індекс (в масштабі);
- індексна з відхиленням: використовується індекс (в
масштабі) + відхилення;
- базова індексна: використовується база + індекс (в масштабі);
- базова індексна з відхиленням: використовується база + індекс
(у масштабі) + відхилення;
3.7 Головні типи даних
В
У табл. 3.7.1 перераховані типи даних і команди, що забезпечуються процесором 80386. У цій таблиці наведено лише найбільш вживані команди. Варіанти команд, такі як (у разі циклічного зсуву) циклічний зсув вправо і циклічний зрушення через перенесення, також опущені.
В
Таблиця 3.7.1
В
Головні типи даних і команди
Тип
Розрядність
Команди
Ціле,
порядкове
В В В В В В В В В
8, 16, 32 біт
В В В В В В В В В В
Пересилання, обмін, перетворення, перевірка, порівняння, переклад, зсув, подвійний зсув, циклічний зсув, заперечення, логічне "і", "чи", виключає "або".
Додавання, віднімання, множення, ділення, збільшення на 1, зменшення на 1, переклад (Пересилання з розширенням знаку/нуля)
неупакованого
десяткове
1 цифра
В
Корекція для додавання,
віднімання, множення, ділення
Упаковане
десяткове
2 цифри
В
Корекція для складання, p> віднімання /Td>
Рядок
(байтів, слів,
подвійних слів)
0-4Гбайт слів,
подвійних слів
В
Пересилання, завантаження,
запам'ятовування, порівняння,
перегляд, повтор
Рядок біт
В В В
1-4Гбіт
В В В
Перевірка, перевірка і установ-
ка, перевірка і гасіння, про-
верка і доповнення, перегляд,
вставляння, вилучення
Локальний
покажчик
32 біт
В
(див. Порядкове)
В
Глобальний
покажчик
48 біт
В
Завантаження <В
Примітка. p> Локальний покажчик - 32 бітне зміщення у сегменті, визначеному однією з реєстрованих пар сегмента/дескриптора. Глобальний покажчик - це повний логічний адресу, що з селектора і зсуву.
багатобайтові елементи можуть розміщуватися з будь-якої адреси байта в Залежно від структури магістралі, для звернення до операндів, розміщеним за адресою, що не кратним довжині операнда в байтах, можуть знадобитися додаткові магістральні цикли. Тому для високої продуктивності, що не залежить від структури магістралі, більшість програм орієнтують немов операнди з подвійних слів на кордонах подвійних слів і т.п.
3.7.1 Типи даних математичного співпроцесора
В
Математичний співпроцесор 80287 чи 80387 додають до типам даних і командам процесора 80386 свої, наведені в табл.3.7.1.1 У більшості прикладних завдань вхідні величини і одержувані результати зберігаються у вигляді типів цілих, дійсних чи упакованих десяткових, а для проміжних величин є тип даних проміжне дійсне, розширений діапазон і точність якого у складних обчисленнях зводять до мінімуму помилки округлення, переповнення і зникнення порядку. Відповідно з такою моделлю математичний співпроцесор виробляє більшу частину обчислень над проміжними величинами, що зберігаються в його регістрах. При завантаженні
будь-якого типу даних в регістровий стек, цей тип автоматично змінюється на проміжний дійсний. Проміжна дійсна величина в регістрі, у свою чергу, може бути
переведена в будь-який інший тип з допомогою команди запам'ятовування.
В
Таблиця 3.7.1.1
В
Головні типи даних і команди математичного співпроцесора