You are on page 1of 8

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ

«Київський політехнічний інститут ім. І. Сікорського»


Інститут Прикладного Системного Аналізу
Кафедра Системного Проектування

Лабораторна робота № 4
З дисципліни «Архітектура обчислювальних систем»
На тему: «Дослідження адресації даних в «реальному режимі»»

Виконала:
Ст. гр. ДА-11
Фоменко Марія

Київ – 2022
Частина 1. Адресація в «реальному» режимі.
1. Скласти схему обчислення адресу процесорів архітектури х86.
2. Пояснити призначення регістрів ЦПУ, використовуваних для адресації.

Частина 2. Дослідження способів адресації даних:


1. Визначити склад і пояснити призначення засобів обчислення адресу даних.
2. Перерахувати способи адресації даних і пояснити їх особливості.
3. Скласти схеми обчислення адресу для різних способів адресації даних.

Частина 3. Написати і відлагодити програму, що виконує дії, вказані в


таблиці. Для адресації елементів масиву використовувати непрямі режими
адресації. Програма має містити процедуру, яка обробляє вихідні параметри
зі стеку. Навести приклади використання різних способів адресації даних і
команд в програмі, зафіксувавши вміст відповідних регістрів і адрес пам'яті.
Хід роботи:
Частина 1

Адреса комірки пам'яті складається з двох частин: номер параграфу, з якого


починається сегмент та зміщення всередині сегменту і зазвичай записується
як SSSS:OOOO, де S та O — шістнадцяткові цифри. SSSS називається
сегментною компонентою адреси, а OOOO — зміщення.
Сегментні регістри та їх призначення:
CS — Сегмент коду. Використовується для вибірки команд програми;
DS — Сегмент даних. Використовується за замовчуванням для доступу до
даних;
ES — Додатковий сегмент. Є отримувачем даних в командах обробки рядків;
SS — Сегмент стеку. Використовується для розміщення програмного стеку;
FS — Додатковий сегментний регістр. Спеціального призначення не має. 
GS — Аналогічно попередньому, але в нових процесорах с 64-бітною
архітектурою має особливий статус: може використовуватись для швидкого
переключення контекстів.
Загальний об'єм пам'яті, яка адресується в реальному режимі становить
1048576 байт (ОООО:ОООО-FOOO:FFFF(OOOOO-FFFFF) - логічна(фізична)
адреса в шістнадцятковій системі числення). 
Сегментний підхід дозволяє розділити всю пам'ять на 16 сегментів, які
починаються з адрес, кратних 64 Кбайт. Ці 16 сегментів називають
сторінками пам'яті. 
Частина 2
1. Безпосередня адресація
Операнд вказується безпосередньо у полі команди, наприклад:

mov ax, 312; 312 задається безпосередньо

2. Регістрова адресація
Операнд знаходиться в одному з регістрів. Наприклад, обидва операнди у
команді задаються за допомогою регістрового способу адресації.

mov ds, dx

3. Непряма адресація
Адрес операнду знаходиться в одному з регістрів – SI, DI, BX, BP.
Наприклад, команда

mov ax, [si]

поміщує у регістр AX слово з комірки пам’яті, зміщення якої вказано у


регістрі SI. Другий операнд заданий за допомогою непрямої адресації. У
сучасних поколіннях процесорів для використання непрямої адресації можна
також використовувати регістри EAX, EBX, ECX, EDX, ESI, EBP та ESP.
4. Пряма адресація
Абсолютний адрес операнду можна задати у вигляді
СЕГМЕНТ:ЗМІЩЕННЯ, де СЕГМЕНТ – адрес сегменту на який вказує
якийсь сегментний регістр (CS, DS, SS або ES), а ЗМІЩЕННЯ – адрес
операнду відносно сегментного регістру (відносна адреса)

Приклади:

5. Базова адресація
Адрес операнду формується складанням вмісту базового регістру (BP або
BX) та зміщенням. Якщо зміщення не задано, то розуміється нульове
значення зміщення.

Якщо використовується BP, то адрес відповідного операнду відраховується


відносно сегменту, на який вказує регістр SS.

Якщо використовується BX, то адрес відраховується відносно сегменту, на


який вказує регістр DS.

Наприклад, команда:
поміщує у регістр AX слово, яке знаходиться у сегменті, вказаному в DS, зі
зміщенням на два більше, ніж число з BX.

Базова адресація має багато альтернативних форм. Таким чином,


еквівалентними формами є:

6. Індексна адресація
Цей метод адресації схожий на попередній, тільки адрес операнду
формується складанням вмістимого індексного регістру (SI або DI) та
зміщення.

У індексній адресації можна використовувати множник 1, 2,4, або 8 щоб


прочитати елемент рівний відповідно – байту, слову, подвійному слову, або
четвірному слову. Це називається масштабуванням індексного регістру.

Приклади:

7. Базова-індексна адресація
Адрес операнду формується складанням вмістимого базового регістру (BP
або BX) та індексного регістру (SI або DI), зі зміщенням, якщо воно вказано.

Якщо використовується регістр BP, то адрес відраховується відносно


сегменту, на який вказує регістр SS. В іншому випадку цей адрес
відраховується відносно сегменту, на який вказує регістр DS.

Приклади:
8. Адресація за базою з індексацією та масштабуванням
Це загальна схема адресації, в яку входять всі випадки, які були розглянуті
попередньо як частні. Адрес формується як сума зміщення, бази та індексу,
причому сума може бути скорегована за допомогою масштабного множника:

Частина 3
Листинг програми

Висновки

Виконуючи лабораторну роботу №4, було вивчено різни методи адресації


процесорів архітектури х86.

Було досліджено та визначено склад та призначення засобів обчислення


адресу. Розібрано всі відомі види адресації та їх програмна реалізація.

You might also like