Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kursova_Klimyuk(1).doc
Скачиваний:
6
Добавлен:
13.09.2019
Размер:
314.37 Кб
Скачать

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 Формування лінійної адреси

режимі реальної адреси та в режимі системного управління викори-стовується спрощена схема формування лінійної адреси. Ця ж схема використовується для обчислення адрес завдання захищеного режиму, що знаходиться в стані емуляції 8086 (Virtual 8086 Mode). В цьому випадку базова адреса сегмента береться з сегментного регістра. Значення в сегментному регістрі являє собою біти 4-19 базової адреси сегмента. З цього випливає, що сегменти в цих режимах вирівняні по 16-байтній межі і всі сегменти починаються в межах нижнього мегабайта лінійного адресного простору. Межа для всіх сегментів однакова. У режимі реальної адреси і для завдання в стані VM86 межа сегмента – 64 Кбайт, а в режимі системного управління – 4 Гбайт.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]