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

1.7 Сегментна організація пам’яті в реальному режимі роботи мікро процесорів x86

Для мікропроцесорів x86 в реальному режимі роботи зсув є одночасно ефективною адресою. Ефективні адреси формуються в Intel–сумісних мікропроцесорах за допомогою регістрів даних, “Системні регістри центрального процесора”. Ефективна адреса формується таким чином .: до восьми або шістнадцяти розрядного зміщення в програмі додається 16–ти розрядний вміст базового регістра і 16–ти розрядний вміст індексного регістра. Розрядність зміщення повинна відповідати розрядності регістру, куди пересилаються дані. Зазвичай в базовому регістрі міститься початкова адреса блоку видобутих даних, а в індексному регістрі – довжина витягуваного запису, помножена на порядковий номер (від 0 до N–1) запису.

Система команд в мікропроцесорах x86 влаштована так, що для утворення ефективної адреси необхідно обов’язкову присутність тільки одного його компонента. Таким чином будь–який компонент: база, індекс, зсув, або навіть обидва з них можуть бути опущені.

1.8 Базові адреси та формування лінійних адрес

Базові адреси містяться в сегментних регістрах мікропроцесорів i8086 / 88 і в регістрах селекторів сегментів в мікропроцесорах x86. Ці регістри шістнадцяти розрядні. Однак утворена в результаті складання базової та ефективної адреси, лінійна адреса є 20–ти розрядною.

Таким чином максимальна лінійна адреса має розмір 1,062 Мбайт (тобто на 64 Кбайт більше, ніж адресний простір в 1 Мбайт). Тому в мікропроцесорах i8086/88 відбувається “загортання” адреси навколо кордону сегмента. Тобто фізична адреса Буде мати значення 0FFEFh. У мікропроцесорі i80286, в резульат помилки розробників, такого загортання немає. У мікропроцесорах i80386 і вище це “загортання” можна включити, а можна і вимкнути, Для включення “загортання” необхідне апаратне блокування лінії A20 (A20 = 0) за допомогою порту контролера клавіатури. Його станом можна управляти програмно.

1.9 Сегментація пам’яті в захищеному режимі

У захищеному режимі роботи мікропроцесорів x86 забезпечується кращий захист операційної системи від несанкціонованого доступу програм користувача. Це відбувається шляхом ускладнення формування лінійної адреси в мікропроцесорах i80386 і вище. Наприклад, сегмент не може бути використаний ніякою програмою, якщо він не “представлений” їй відповідним чином. Програма вже не може звертатися за будь–якою адресою, який вона може сформувати. При “поданні” сегмента програмі вона повинна запросити не тільки базову адресу сегмента, а й рівень привілеїв, локалізацію сегмента, його довжину і роздільну здатність, права доступу до сегмента (читання, запис і виконання) і деякі інші параметри.

При цьому у системного програміста є більше можливостей з управління сегментацією пам’яті. Так, уже в мікропроцесорі i80386 зняті обмеження на розмір сегмента. Він може мати значення від 1 байта до 4 Гбайт. У ньому також зняті обмеження на розташування кордону сегмента. Кордон сегмента більше не прив’язано до кордону параграфа, та й саме поняття “параграф” до захищеного режиму роботи мікропроцесора не застосовується. Програміст в описі сегмента сам визначає рівні привілеїв і тип використовуваного сегмента.

Рівні привілеїв призначаються програмами з метою не допустити руйнування системних областей некоректними діями прикладних програм. Деякі команди виконуються тільки на нульовому (самому верхньому) рівні привілеїв. Виконання інших команд залежить від того, які рівні привілеїв встановлені в регістрів прапорів і при описі сегмента. У будь–якому випадку діють наступні правила виклику сегментів і між сегментних переходів:

1. Можливий перехід від сегмента до сегмента, що мають один і той же рівень привілеїв.

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

3. Якщо необхідно перейти до сегменту коду, що має більш високий рівень привілеїв, необхідно використовувати вентиль.

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