Сегментні регістри - студопедія
Поняття програмної моделі 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. Сегментні регістри призначені для забезпечення доступу до оперативної пам'яті.