адресою, яка зчитується зі спеціального масиву, таблиці векторів переривань, що починається в пам'яті за адресою 0000h: 0000h. Кожен елемент такого масиву представляє собою дальній адресу обробника переривання в форматі сегмент: зсув або 4 нульових байта, якщо обробник НЕ встановлений. Команда INT поміщає в стек регістр прапорів і дальній адресу повернення, тому, щоб завершити обробник, треба виконати команди popf і retf або одну команду iret, яка в реальному режимі повністю їм аналогічна.
Після того як обробник написаний, наступний крок - прив'язка його до вибраного номера переривання. Це можна зробити, прямо записавши його адресу в таблицю векторів переривань.
Хоча пряму зміну таблиці векторів переривань і здається досить зручним, все-таки це не найкращий підхід до установки обробника переривання, і користуватися ним слід тільки у виняткових випадках, наприклад, всередині обробників переривань. Для звичайних програм DOS надає дві системні функції: 25h і 35h - встановити і рахувати адресу обробника переривання, які і рекомендуються до використання в звичайних умовах. p> Зазвичай обробники переривань застосовують з метою обробки переривання від зовнішніх пристроїв або з метою обслуговування запитів інших програм.
2.6. Переривання від зовнішніх пристроїв
Переривання від зовнішніх пристроїв або апаратні переривання, - це те, що розуміється під терміном В«перериванняВ». Зовнішні пристрої (клавіатура, дисковод, таймер, звукова карта і т. д.) подають сигнал, по якому процесор перериває виконання програми і передає управління на обробник переривання. Всього на персональних комп'ютерах використовується 15 апаратних переривань, хоча теоретично можливості архітектури дозволяють довести їх кількість до 64. p> - IRQ1 (INT 9) - переривання клавіатури, викликається при кожному натисканні та відпусканні клавіші на клавіатурі. Стандартний оброблювач цього переривання виконує досить багато функцій, починаючи з перезавантаження по Ctrl-Alt-Del і закінчуючи приміщенням коду клавіші в буфер клавіатури BIOS.
Найкорисніші для програм апаратні переривання - переривання системного таймера і клавіатури. Так як стандартні обробники цих переривань виконують безліч функцій, від яких залежить робота системи, їх не можна замінювати повністю. p> перерваної програмі. Цей спосіб застосовують, якщо потрібно, щоб спочатку відпрацював новий обробник, а потім він передав управління старому
Резидентні програми, що перехоплюють апаратні переривання, мають властивість виконаються одночасно з якою-небудь іншою програмою. Саме для цього і застосовується механізм апаратних переривань - вони дозволяють процесору виконувати одну програму, в той час як окремі програми стежать за часом , Зчитують символи з клавіатури і поміщають їх в буфер, отримують і передають дані через послідовні і паралельні порти і навіть забезпечують багатозадачність, перемикаючи процесор між різними завданнями з переривання системного т...