Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Обробка програмних і апаратних переривань в IBM PC сумісних комп'ютерах за допомогою резидентних програм

Реферат Обробка програмних і апаратних переривань в IBM PC сумісних комп'ютерах за допомогою резидентних програм





нання поточної програми таким чином, щоб потім перервана програма продовжила свою роботу так, як ніби ніякого переривання не було. Будь-яка програма, завантажена для виконання операційною системою, займає своє, окреме від інших програм, місце в оперативній пам'яті. Розділяються між програмами ресурсами є регістри мікропроцесора, в тому числі регістр прапорів, тому їх вміст потрібно зберігати. Обов'язковими для збереження є регістри cs, ip і flags eflags, тому вони, при виникнення переривання, зберігаються мікропроцесором автоматично. Пара cs: ip містить адресу команди, з якою необхідно почати виконання після повернення з програми обслуговування переривання, a flags eflags - стан прапорів після виконання останньої команди перерваної програми в момент передачі управління програмі обробки переривання. Збереження вмісту інших регістрів повинно забезпечуватися програмістом на початку програми обробки переривання до їх використання. Найбільш зручним місцем зберігання регістрів є стек. Наприкінці першого етапу мікропроцесор після включення в стек регістрів Hags, cs і ip скидає біт прапора переривань IF в регістрі flags (але при цьому в стек записується попередній вміст регістра flags з ще встановленим IF). Тим самим запобігають можливість виникнення вкладених переривань по входу INTR і псування регістрів вихідної програми внаслідок неконтрольованих дій з боку програми обробки вкладеного переривання. Після того як необхідні дії по збереженню контексту завершені, обробник апаратного переривання може дозволити вкладені переривання командою sti.

Набір дій щодо реалізації другого етапу полягає у визначенні джерела переривання і виклику відповідної програми обробки. У реальному режимі мікропроцесора допускається від 0 до 255 джерел переривань. Кількість джерел переривань обмежена розміром таблиці векторів переривань. Ця таблиця виступає сполучною ланкою між джерелом переривання і процедурної обробки. Дана таблиця розташовується в пам'яті, починаючи з адреси 0. Кожен елемент таблиці векторів переривань займає 4 байта і має наступну структуру: 1-е слово елемента таблиці - значення зсуву початку процедури обробки переривання ( п ) від початку кодового сегмента; 2-е слово елемента таблиці - значення базової адреси сегмента, в якому знаходиться процедура обробки переривання.

Розглянемо, для прикладу, роботу обробника апаратного переривання 09Н - переривання клавіатури.

Програма обробки переривання від клавіатури працює з контролером клавіатури, у функції якого входять розпізнавання натиснутоюклавіші і запис закріпленого за нею скан-коду в свій регістр виходу. Програма обробки читає скан-код натиснутоюклавіші з порту 60h і проводить його значення. Якщо це не клавіша управління, то переривання 09h по таблиці трансляції скан-коду і кодів ASCII формує багатобайтових код, при цьому скан-код - в старшому, a ASCII - в молодшому. При цьому ASCII-код визначає закріплений символ. Так як за кожною клавішею закріплено не менше двох символів, то кожному скан-коду відповідає не менше двох ASCII-кодів. Для більш точного визначення потрібно аналіз перериванням INT 09h стану прапорів, встановлених раніше па підставі інформації з контролера клавіатури. Переривання INT 09h, сформувавши багатобайтових код, поміщає його в кільцевий буфер клавіатури за адресою, що знаходиться в хвостовому покажчику цього буфера.


2. Розробка структури резидентної програми

переривання резидентний програма асемблер

При розробці резидентної програми необхідно вирішити декілька пов'язаних інженерних завдань.

Резидентна програма зазвичай складається з двох пов'язаних частин - нерезидентної частини і резидентної частини.

Нерезидентна частина отримує управління при запуску програми, при необхідності - аналізує параметри запуску і налаштовує резидентну частину на конкретні умови роботи, виконує перехоплення і настройку необхідних векторів переривань, і звичайно за допомогою системної функції 31h переривання 21h залишає резидентную частина в пам'яті, повертаючи керування операційній системі.

Резидентна частина відповідає за реалізацію корисного функціоналу резидентної програми. Для розроблюваної програми це управління індикаторами клавіатури Num Lock, Caps Lock, Scroll Lock. Оскільки управління індикаторами відповідно до завдання потрібно робити з клавіатури ПК, то резидентная частина повинна містити обробник переривання клавіатури 09h.

У відповідності із завданням потрібно реалізувати захист від повторного завантаження резидентної програми. Це можна реалізувати за допомогою використання спеціального переривання - 2Fh - званого також мультиплексний, спеціально призначеного для організації взаємодії з резидентними програмами. Перевірка знаходження...


Назад | сторінка 2 з 5 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Переривання і виключення
  • Реферат на тему: Переривання вагітності
  • Реферат на тему: Цикли, переривання, компоненти для відображення тексту
  • Реферат на тему: Внутрішньоутробне вдосконалення людини і переривання вагітності
  • Реферат на тему: Розробка програми-драйвера клавіатури