Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Опорний конспект лекцій_ Асемблер.Docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
506.89 Кб
Скачать

1.2. Програмна модель мікропроцесора Intel Pentium III

Люба програма, що виконується отримує у своє розпорядження певний набір ресурсів МП. Ці ресурси необхідні для виконання і зберігання в пам’яті команд програми, даних і інформації про поточний стан програми і МП. Набір цих ресурсів складає програмну модель

МП. На рис. 1.2 наведено програмну модель МП Pentium III. Програмні моделі більш ранніх МП (i486, Pentium) відрізняються меншим розміром адресованого простору ОП (232-1, так як розрядність шини адреса складала 32 біти) і відсутністю деяких груп регістрів.

Таким чином програмну модель МП Pentium III складають:

o простір адресованої пам’яті до 236-1 байт;

o набір регістрів для зберігання даних загального призначення;

o набір сегментних регістрів;

o набір регістрів стану і керування;

o набір регістрів пристрою обчислень з плаваючою крапкою (співпроцесора);

o набір регістрів цілочисельного ММХ-розширення, що відображаються на регістри співпроцесора (вперше появились в Pentium MMX);

o набір регістрів ММХ-розширення з плаваючою крапкою (вперше появились в

Pentium III);

o програмний стек. Це спеціальна інформаційна структура, робота з якою передбачена на рівні машинних команд.

Рис. 1.2. Програмна модель МП Intel Pentium III

o esp/sp (Stack Pointer register) – регістр вказівника стека. Містить вказівник вершини стека в поточному сегменті стека;

o ebp/bp (Base pointer register) – регістр вказівника бази кадру стека. Призначений для організації довільного доступу до даних всередині стека.

Проте на практиці більшість із цих регістрів може використовуватися для зберігання операндів у любих комбінаціях.

      1. Сегментні регістри

МП апаратно підтримує структурну організацію програми у вигляді трьох частин, які називають сегментами. Така організація пам’яті називається сегментною. Для того щоб вказувати на сегменти, до яких програма має доступ в конкретний момент часу, використовуються шість сегментних регістрів cs, ss, ds, es, gs, fs. МП підтримує наступні типи сегментів:

  1. Сегмент кода. Містить команди програми. Для доступу до цього сегмента служить регістр cs (code segment registr) – сегментний регістр коду. Він містить адрес сегмента з машинними командами, до якого має доступ МП.

  2. Сегмент даних. Містить оброблювані програмою дані. Для доступу до цього сегмента служить регістр ds (data segment registr) – сегментний регістр даних, який зберігає адрес сегмента даних поточної програми.

  3. Сегмент стека. Цей сегмент являє собою область пам’яті, що називається стеком. Роботу із стеком МП організує по принципу: останній записаний елемент вибирається першим. Для доступу до цього сегменту служить регістр ss (stack segment register) – сегментний регістр стека.

  4. Додатковий сегмент даних. Неявно припускається, що всі оброблювані дані розміщені в сегменті даних, адрес якого зберігається в сегментному регістрі ds. Якщо програмі недостатньо одного сегмента даних, то вона може використати ще три сегменти даних, але їх адреси треба вказати явно з допомогою префіксів перевизначення сегментів. Адреси додаткових сегментів повинні міститися в регістрах es, fs, gs (extention data segment registr).