1.9. Збереження в пам'яті регістрів мікропроцесора.
Оскільки при скиданні МП значення його регістрів губляться, те необхідно попередньо здійснити запис значень сегментних регістрів і регістра покажчика стека в пам'ять.
1.10. Переклад мікропроцесора в захищений режим.
Для того щоб перевести МП у захищений режим, необхідно установити 0-й біт регістра керування CR0 (Control Register) в одиницю.
Регістр CR0 включає 10 розрядів для керування роботою мікропроцесора і визначення його стану (біти CD, NW, AM, WP і NE з'явилися в МП починаючи з i486):
PE (Protection Enable) - біт дозволу захисту встановлюється в “1” для переключення МП у захищений режим. Якщо РЕ скинутий - МП працює в реальному режимі; МР (Monitor coProcessor) - біт керування співпроцесором - блоком FPU (Floating Point Unit) використовується разом з битому TS для генерації переривання 7 (“FPU недоступний”) при обробці команди WAIT : якщо MP=1 і TS=1, то команда WAIT викликає переривання;
EM (Emulation) - біт емуляції співпроцесора: коли він установлений викликається переривання 7 при виконанні команд FPU чи переривання 6 при виконанні команд MMX (для МП, що виконує набір команд MMX). Значення EM не впливає на команду WAIT;
TS (Task Swiched) - біт переключення задач: біт TS установлюється при переключенні задач. Якщо TS=1 і виконується команда FPU чи MMX (якщо MP=1, то і команда WAIT), те викликається переривання 7;
NE (Numeric Error) - біт керування обробкою помилок FPU : якщо NE=0, то встановлюється схема обробки помилок, використовувана в МП 80286 і 80386 - через зовнішнє переривання IRQ 13 (переривання від співпроцесора). При цьому на вхід IRQ 13 контролера переривань надходить сигнал FERR# від МП, що приймає активний (низький) рівень при помилці FPU. Вхідний сигнал МП IGNNE# низьким рівнем дозволяє заборонити обробку помилок FPU. Якщо NE=1, помилки співпроцесора обробляються як внутрішні переривання з номером 16;
WP (Write Protection) - біт захисту від запису забороняє запис у сторінки, потрібні тільки для читання для всіх програм;
AM (Alignment Mask) - біт маски вирівнювання: при AM=0 забороняється перевірка невирівняності операндів;
NW (Not Write through) - біт заборони запису в кеш-пам'ять;
CD (Cache Disable) - біт заборони кэшировання, тобто заповнення рядка кеш-пам'яті;
PG (PaGing) - біт дозволу сторінкової організації. Установка PG=1 дозволена тільки в захищеному режимі, тобто при PE=1.
Занесення даних у регістр CR0 для мікропроцесорів починаючи с 80386 виконується спеціальною командою MOV, що здійснює промін із системними регістрами.
У МП 80286 замість 32-розрядного регістра CR0 мається 16-розрядний регістр MSW (Machine Status Word). Занесення даних у MSW виконується командою LMSW. Для сумісності молодші 16 розрядів CR0 збігаються з MSW і запис у них може здійснюватися також і командою LMSW.Установка біта PE здійснюється для мікропроцесора 80286 за допомогою команди LMSW, що заносить значення перемінної msw у регістр MSW: db 0fh,01h,36h { LMSW }
dw msw
jmp @prot
Для МП починаючи з 80386 установка біта PE CR0 без зміни інших розрядів регістра керування здійснюється за допомогою команди MOV:
db $0f,$20,0c0h { MOV EAX,CR0 }
db 66h,0dh { OR EAX,1 }
dd 1h
db $0f,22h,0c0h { MOV CR0,EAX }
jmp @prot
Відразу після переходу МП у захищений режим необхідно виконати програмний перехід для очищення буфера предвиборки від команд, занесених туди в реальному режимі. Перехід здійснюється на мітку @prot, з яким і починається робота МП у захищеному режимі. Помітимо, що оскільки в програмі P_MODE не було потрібно перевантажувати сегментний регістр коду (у захищеному режимі використовувалися ті ж базова адреса і розмір сегмента і того ж права доступу), те використовується внутрісегментний перехід і завантаження регістра
CS не відбувається. Потім у сегментні регістри DS, SS і ES завантажуються відповідні селектори:
@prot:mov ax,data_sel
mov ds,ax
mov ax,stack_sel
mov ss,ax
mov ax,video_sel
mov es,ax
На цьому переклад мікропроцесора в захищений режим завершується.
1.11. Повернення в реальний режим.
Для повернення в реальний режим для МП 80286 використовується процедура RESET , що встановлює ознаку виконання скидання мікропроцесора (res=1), за допомогою команди контролера клавіатури здійснює скидання МП : mov al,$fe
out $64,al
і очікує завершення скидання мікропроцесора:
@wait_res:
hlt
jmp @wait_res.
Після скидання МП BIOS виконує перехід на крапку входу, адреса яке зберігається в осередку $40:$67. Для МП починаючи з 80386 повернення в реальний режим виконується за допомогою команди MOV, що здійснює скидання біта PE регістра CR0. Перед цим необхідно виконати наступні дії :
а) заборонити апаратні переривання командою CLI;
б) передати керування сегменту коду з R=1 і FFFFh;
в) завантажити в сегментні регістри DS, SS, ES селектори сегмента, що має атрибути, відповідні реальному режиму: границю сегмента, рівну 64ДО-1, ED=0 і W=1;
г) за допомогою команди LIDT завантажити в IDTR базова адреса (0) і границю (1Кб - 1) таблиці векторів реального режиму;
д) очистити біт PE регістра CR0;
е) здійснити межсегментний перехід.
З перерахованих вище дій у даній програмі потрібно виконати тільки пункти а), в), і д). Пункт б) не потрібно виконувати оскільки сегмент виконуваного коду уже володіє зазначенними параметрами. Пункт г) не потрібно, тому що в захищеному режимі не оброблялися і таблиця векторів (тобто IDT) і її розташування в пам'яті не були змінені.
Нарешті, пункт е) не потрібний через те, що не було завантаження регістра CS при вході в захищений режим.
Для завантаження сегментних регістрів DS, SS і ES використовується
селектор сегмента даних data_sel, що задовольняє перерахованим у пункті в) умовам : mov ax,data_sel
mov es,ax
mov ds,ax
mov ss,ax.
Очищення біта PE регістра CR0 виконуються командою MOV:
db $0f,$20,0c0h
db 66h,25h
dd 0fffffffeh
db $0f,22h,0c0h
jmp ret_r
Перехід на мітку ret_r необхідний для очищення буфера предвиборки команд.
1.12. Відновлення регістрів МП.
Відновлення регістрів МП виконується в такий спосіб:
ret_r:
xor ax,ax { Відновлення регістрів після }
mov ds,ax { повернення в реальний режим: }
mov ds,ds:[4*$60] { DS, }
mov ss,real_ss { SS, }
mov es,real_es { ES і }
mov sp,real_sp { SP }
1.13. Дозвіл маскуємих і немаскуємих переривань.
Дозвіл маскуємих і немаскуємих переривань здійснюється за допомогою процедури en_int. Ця процедура також виконує скидання стану клавіш-перемикачів.
2. Система команд мікропроцесора :
2.1. Кодування регістрів.
При двухбітовому полі rg :
Таблиця 4.
rg | 00 | 01 | 10 | 11 |
Сегментні регістри | Es | Cs | Ss | Ds |
При трьохбітовому полі rg :
Таблиця 5.
Reg | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
W=0 | Al | Cl | Dl | Bl | Ah | Ch | Dh | Bh |
W=1 | Ax | Cx | Dx | Bx | Sp | Bp | Si | Di |
обачив світло спрощений варіант процесора Pentium II, назва ,що отримала Celeron. В ньому вдвічі зменшений вторинний кеш і, немовби, прибрана підтримка багатопроцесорних систем. Однак шляхом “хірургічного” втручання підтримку багатопроцесорності можна повернути. Це пояснюється тим, що в Celeron застосоване ядро Pentium II без будь-яких змін. В 1999 році з'явився процесор Pentium III. В ньому ...
... і друку інформації про конфігурацію системи. · Backup. Засоби архівування даних призначені для резервного копіювання інформації на локальний носій на магнітній стрічці. Операційна система Windows NT завжди володіла прекрасними і широко застосовними на практиці можливостями захисту. Однократна реєстрація в домені Windows NT надає користувачам доступ до ресурсів всієї корпоративної ...
... . Користувач може вільно робити резервні копії й переносити програму з одного комп'ютера на інший, переносячи з собою ключ. [3] Деякі питання розкриття і розслідування злочинів у сфері комп’ютерної інформації Правоохоронні органи неготові до адекватного протистояння й активної боротьби з цим вже не новим соціальним явищем. Цей вид злочинності завдає величезних збитків власникам і користувачам ...
... передбаченою. 3. Генерація гамми не повинна бути дуже трудомісткою. Слід зазначити, що алгоритми криптосистем з відкритим ключем (СВК) можна використовувати за трьома напрямками: 1. Як самостійні засоби захисту даних, що передаються чи зберігаються. 2. Як засіб для розподілу ключів. Алгоритми СВК більш трудомісткі, ніж традиційні криптосистеми. Обмін великими інформаційними потоками здійснюють ...
0 комментариев