Сегментні регістри - студопедія

Поняття програмної моделі IA-32.

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

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

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

4 - набір регістрів стану і управління;

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

6 - набір регістрів цілочисельного MMX-розширення, відображених на регістри співпроцесора;

7 - набір регістрів SSE-розширення з плаваючою точкою;

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

Регістри загального призначення.

Регістри загального призначення використовуються в програмах для зберігання:

1 - операндів логічних і арифметичних операцій;

3 - покажчиків на осередки пам'яті.

Регістри, що відносяться до групи регістрів загального призначення:

- EAX / AX / AH / AL (Accumulator register) - акумулятор. Застосовується для зберігання проміжних даних. У деяких командах використання цього регістра обов'язково;

- EDX / DX / DH / DL (Data register) - регістр даних. Так само як і регістр ЕАХ / AX / AH / AL, він зберігає проміжні дані. У деяких командах його використання обов'язково; для деяких команд це відбувається неявно.

Регістри ESI і EDI використовуються для підтримки так званих ланцюгових операцій, тобто операцій, які виробляють послідовну обробку ланцюжків елементів, кожен з яких може мати довжину 32, 16 або 8 біт:

Для роботи зі стеком в системі команд мікропроцесора є спеціальні команди, а в програмній моделі мікропроцесора для цього існують такі спеціальні регістри:

- ESP / SP (Stack Pointer register) - регістр покажчика стека. Містить покажчик вершини стека в поточному сегменті стека (реєстр ESP не слід використовувати явно для зберігання будь-яких операндів програми, так як в ньому зберігається покажчик на положення вершини стека програми);

- EBP / BP (Base Pointer register) - регістр покажчика бази кадру стека. Призначений для організації довільного доступу до даних усередині стека.

Більшість з регістрів може використовуватися при програмуванні для зберігання операндів практично в будь-якому поєднанні хоча використання жорсткого закріплення регістрів для деяких команд дозволяє більш компактно кодувати їх машинне подання, що дозволяє при необхідності хоча б на кілька байт заощадити пам'ять, займану кодом програми.

У програмній моделі мікропроцесора є шість сегментних регістрів: CS, SS, DS, ES, GS, FS. Сегментні регістри призначені для забезпечення доступу до оперативної пам'яті.