четвер, 25 серпня 2011 р.

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

Уроки захищеного режиму з 13 по 16.

Попередні : 
  1. "Уроки захищеного режиму x86. Урок 0 та 1". 
  2. "Уроки захищеного режиму x86. Урок 2". 
  3. "Уроки захищеного режиму x86. Урок 3". 
  4. "Уроки захищеного режиму x86. Урок 4".
  5. "Уроки захищеного режиму x86. Урок 5".
  6. "Уроки захищеного режиму x86. Урок 6". 
  7. "Уроки захищеного режиму x86. Урок 7".  
  8. "Уроки захищеного режиму x86. Урок 8".
  9. "Уроки захищеного режиму x86. Урок 9".
  10.  "Уроки захищеного режиму x86. Урок 10".
  11.  "Уроки захищеного режиму x86. Урок 11".
  12.  "Уроки захищеного режиму x86. Урок 12".
Базою для цих матеріалів служать уроки уроки захищеного режиму Алексея Фрунзе
Ліцензія на код -- GPL2+, ліцензія на тексти -- GFDL.
Довідкова інформація взята з відкритих джерел на просторах Інтернету, зокрема з офіційних мануалів Intel.
Традиційне і очевидне -- жодних гарантій.

Уроки номер 13, 14, 15, 16

Всі ці уроки є вступом у використання режиму віртуального 8086 (v8086). На жаль, вони поки без теоретичного опису, лише код із коментарями. Матеріал там відносно простий, однак доволі плутаний. Коли працював над цими уроками, руки не дійшли, а зараз немає ні зацікавленості, ні часу. Однак, якщо буде попит, щось можна придумати :-)
13:
Багатозадачність, як і в попередньому уроці. Одна з двох задач переходить в режим v8086 -- для неї в TSS встановлено відповідний прапорець у EFLAGS.

14:
Додано код, що насправді реалізує роботу в режимі v8086. Підтримуються програмні переривання для задач v86.
15:
Майже повноцінний v86-монітор. IRQ перенаправляються до задачі v86. Завдяки цьому задачі доступні всі функції DOS, прямо як у вікні MS-DOS "віндовса" :-) Про роботу монітора свідчить зірочка, що мерехтітиме в правому верхньому кутку екрану. Запущено command.com (чи що там у вас було в COMSPEC і можна спробувати виконати команди типу dir, чи навіть запустити програми реального режиму.


16:
Крім описаного в попередньому уроці додано підтримку покрокового зневадження (Int 1). Тепер з-під цього монітору працюватимуть і Turbo Debugger і вбудовані зневаджувачі середовищ Turbo Pascal чи Turbo C.

Реалізація поки тільки змішана, C-asm. Якщо буде зацікавленість, можна написати і чисто асемблерну.

Архіви з файлами уроків: pm_13.zip, pm_14.zip, pm_15.zip, pm_16.zip.

Незначні зміни, доповнення та виправлення будуть вноситися прямо в ці файли, про що я старатимуся повідомляти.

На сьогодні все. Сімнадцятий, останній, урок показуватиме, як можна користуватися шлюзами виклику.

Дякую за увагу

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