- •Розділ і Теоретична частина
- •1.1 Керуючі регістри процесора Структура керуючих регістрів процесора
- •Структура регістру прапорців процесора
- •1 .2 Перемикання між режимами
- •1.3 Формування фізичної адреси
- •Формування лінійної адреси без участі селекторів.
- •Формування лінійної адреси в захищеному режимі
- •Сторінкове перетворення адрес
- •1.4 Захист по привілеях
- •Захист на рівні сегментів
- •Захист на рівні сторінок
- •1.5 Мультизадачність
- •1 .6 Особливості режиму системного управління
- •Порівняльні характеристики режимів процесора
- •Розділ іі Практична частина
- •2.1 Алгоритм роботи програми
- •2.2 Програма обчислення значення виразу
- •Висновки
- •Список використаної літератури
1 .2 Перемикання між режимами
Після ініціалізації процесор знаходиться в режимі реальної адреси. Процесор може бути переведений в захищений режим установкою біта 0 (Protect Enable) в регістрі CR0:
MOV EAX, 00000001h
MOV CR0, EAX Рис. 1.3 Зв’язок між режимами
або
MOV AX, 0001h
LMSW AX
Другий варіант "дістався у спадок" від 16-тирозрядної архітектури 80286, для сумісності з якою її регістр MSW (Machine Status Word) відображається на молодше слово регістра CR0.
Повернутися в режим реальної адреси процесор може за сигналом RESET або (на відміну від 80286) скинувши біт PE:
MOV EAX, 00000000h
MOV CR0, EAX
Для сумісності з 80286 інструкція LMSW біт PE не скидає.
Режим системного управління ізольований від інших режимів. Процесор переходить у цей режим тільки апаратно: по низькому рівню на контакті SMI # або (для Pentium і вище) за командою з шини APIC. Ніякий програмний спосіб не передбачений для переходу в цей режим. Процесор повертається з режиму системного управління в той режим, при роботі в якому був отриманий сигнал SMI #. Повернення відбувається по команді RSM. Ця команда працює тільки в режимі системного управління і в інших режимах не розпізнається, генеруючи виняток # 6 (недійсний код операції).
1.3 Формування фізичної адреси
У різних режимах процесор по-різному формує фізичну адресу. Існує три етапи формування фізичної адреси:
1. Формування ефективної адреси: з логічної адреси (база-індекс-зміщення) процесор обчислює ефективну адресу - відстань від базової адреси поточного сегмента пам'яті.
2. Формування лінійної адреси: ефективна адреса складається з базовою адресою сегмента, отримане значення є адресою в плоскому (лінійному) 4 Гбайтном віртуальному просторі.
3. Сторінкова трансляція адрес: лінійне 4 Гбайтний адресний простір за допомогою 4 Кбайтних сторінок відображається на фізично присутні блоки пам'яті (фізичний простір).
Перший етап у всіх режимах проходить однаково. Відмінності починаються з другого етапу. У різних режимах по-різному визначається базова адреса сегмента. Третій етап присутній тільки в захищеному режимі - в режимі реальної адреси та в режимі системного управління сторінкове перетворення адрес заборонено, отримана лінійна адреса вважається фізичною адресою. Однак і в захищеному режимі сторінкової трансляції може не бути. Сторінкова трансляція включається програмно установкою біта 31 (Paging) в регістрі CR0:
MOV EAX, 80000001h
MOV CR0, EAX
Формування лінійної адреси без участі селекторів.
У
Рис.
1.4 Формування лінійної адреси