Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Дескриптори і таблиці глобальних дескрипторів.

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
Комп’ютерні науки
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Архітектура комп’ютерів та комп’ютерних систем

Частина тексту файла

Лабораторна робота №1 ТЕМА: Дескриптори і таблиці глобальних дескрипторів. МЕТА: Навчитись програмно описувати дескриптори у таблиці глобальних дескрипторів та завантажувати в регістр процесора GDTR, інформацію про таблицю глобальних дескрипторів. Короткі теоретичні відомості При вмиканні процесора в ньому автоматично встановлюється режим реальної адреси. Перехід у захищений режим здійснюється програмно шляхом виконання відповідної послідовності команд. Оскільки багато деталей функціонування процесора в реальному і захищеному режимах істотно відрізняються, програми, призначені для захищеного режиму, повинні бути написані особливим чином. Реальний і захищений режими є несумісними. Розглянемо програму, яка переключає процесор у захищений режим. .386P ;Дозвiл трансляцiї привiлейованих команд ;Структура для опису дескрипторiв сегментiв descr struc limit dw 0 ;Межа (бiти 0..15) base_l dw 0 ;База, бiти 0..15 base_m db 0 ;База, бiти 16..23 attr_1 db 0 ;Байт атрибутiв 1 attr_2 db 0 ;Межа (бiти 16..19) i атрибути 2 base_h db 0 ;База, бiти 24..31 descr ends ;Сегмент даних data segment use16 ;16-розрядна програма ;Таблиця глобальних дескрипторiв GDT gdt_null descr <0,0,0,0,0,0> ;Селектор 0 - обов'язковий ;нульовий дескриптор gdt_data descr <data_size-1,0,0,92h,0,0> ;Селектор 8,сегмент даних gdt_code descr <code_size-1,0,0,98h,0,0> ;Селектор 16,сегмент команд gdt_stack descr <255,0,0,92h,0,0> ;Селектор 24, сегмент стеку gdt_size=$-gdt_null ;Розмiр GDT pdescr dq 0 ;Псевдодескриптор для lgdt real_sp dw 0 ;Змiнна для збереження SP mes db 27, '[31;42m Повернулися в реальний режим! ',27,'[0m$' data_size=$-gdt_null ;Розмiр сегменту даних data ends ;Кiнець сегменту даних ;Сегмент команд text segment 'code' use16 ;16-розрядна програма assume CS:text, DS:data main proc mov AX, data ;Iнiцiалiзацiя DS mov DS, AX ;у реальному режимi ;Знайдемо 32-бiтову лiнiйну адресу сегменту даних mov DL,0 shld DX,AX,4 shl AX,4 mov BX,offset gdt_data mov [BX]. base_l,AX mov [BX]. base_m,DL ;Знайдемо 32-бiтову лiнiйну адресу сегменту команд mov AX, CS mov DL,0 shld DX,AX,4 shl AX,4 mov BX,offset gdt_code mov [BX]. base_l,AX mov [BX]. base_m,DL ;Знайдемо 32-бiтову лiнiйну адресу сегменту стеку mov AX,SS mov DL,0 shld DX,AX,4 shl AX,4 mov BX,offset gdt_stack mov [BX]. base_l,AX mov [BX]. base_m,DL ;Пiдготуємо дескриптор i завантажимо регiстр GDTR mov BX,offset gdt_data ;Адреса GDT mov AX,[BX].base_l;Одержимо та занесемо у pdescr mov word ptr pdescr+2, AX ;базу, бiти 0..15 mov DL,[BX]. base_m;Одержимо i занесемо у pdescr mov byte ptr pdescr+4, DL ;базу, бiти 16..23 mov word ptr pdescr, gdt_size-1 ;Межа GDT lgdt pdescr ;Завантажимо регiстр GDTR ;Пiдготуємося до повернення в реальний режим mov AX, 40h ;Налаштуємо ES на область mov ES,AX ;даних BIOS mov word ptr ES:[67h],offset return;Зсув точки повернення mov ES:[69h],CS ;Сегмент точки повернення ;Пiдготуємося до переходу в захищений режим cli ;Заборона апаратних переривань mov AL,0Fh ;Вибiрка байту стану вiдключення out 70h,AL ;Порт КМОП-мiкросхеми mov AL, 0Ah ;Установка режиму вiдновлення out 71h,AL ;пiсля скидання процесора ;Перехід в захищений режим smsw AX ;Одержимо слово стану комп’ютера or AX,1 ;Встановимо бiт PE l...
Антиботан аватар за замовчуванням

14.05.2018 22:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини