понеділок, 30 травня 2011 р.

Уроки захищеного режиму x86. Урок 3

Третій урок захищеного режиму. 

Попередні : 

Базою для цих матеріалів служать уроки уроки захищеного режиму Алексея Фрунзе
Ліцензія на код -- GPL2+, ліцензія на тексти -- GFDL.
Довідкова інформація взята з відкритих джерел на просторах Інтернету, зокрема з офіційних мануалів 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.
Незначні зміни, доповнення та виправлення будуть вноситися прямо в цей файл, про що я старатимуся повідомляти.

На сьогодні все. Наступний урок буде присвячений типам виключних ситуацій та переривань, і їх обробці. 
Дякую за увагу

Якщо є запитання, виправлення, пропозиції - пишіть! Багато часу цьому приділяти, на жаль, не можу, але якщо з того буде комусь користь - спробуємо щось придумати.