Третій урок захищеного режиму.
Попередні :
Базою для цих матеріалів служать уроки уроки захищеного режиму Алексея Фрунзе.
Ліцензія на код -- GPL2+, ліцензія на тексти -- GFDL.
Довідкова інформація взята з відкритих джерел на просторах Інтернету, зокрема з офіційних мануалів Intel.
Традиційне і очевидне -- жодних гарантій.
Довідкова інформація взята з відкритих джерел на просторах Інтернету, зокрема з офіційних мануалів Intel.
Традиційне і очевидне -- жодних гарантій.
Урок номер 3
Та ж GDT що i в другому уроцi. Створюємо IDT (Interrupts Descriptor Table – таблиця дескрипторiв переривань), яка мiстить обробник програмного переривання Int 20h та виключної ситуацiї – дiлення на нуль (Int 0). Перший з них просто виводить повідомлення, другий -- закінчує роботу програми. Продемонстровано їх роботу. Звернiть увагу що обробники є 16-бiтними (типу 286). Зроблено це для простоти.
Описано (болдом виділено те, що безпосередньо відноситься до захищеного режиму):
- Типи системних дескрипторів.
- Шлюзи виклику.
- Шлюзи задач.
- Шлюзи переривань та IDT.
- Одним реченням - експорт функції C для використання з асемблерного коду для NASM.
Є як змішана C-asm так і чисто асемблерна реалізації.
Архів з файлами уроку: pm_03.zip.Незначні зміни, доповнення та виправлення будуть вноситися прямо в цей файл, про що я старатимуся повідомляти.
На сьогодні все. Наступний урок буде присвячений типам виключних ситуацій та переривань, і їх обробці.
На сьогодні все. Наступний урок буде присвячений типам виключних ситуацій та переривань, і їх обробці.
Дякую за увагу
Якщо є запитання, виправлення, пропозиції - пишіть! Багато часу цьому приділяти, на жаль, не можу, але якщо з того буде комусь користь - спробуємо щось придумати.
Немає коментарів:
Дописати коментар