Використання переривань у програмах. 4. Основні переривання та їх функції (крім 21h)

4. Основні переривання та їх функції (крім 21h)

1. Поняття "переривання"

Перериванням називається системний сигнал найвищого рівня пріоритету. При виникненні (збудження) переривання, що може мати місце в результаті дій якогось з периферійних пристроїв, або ж дій користувача чи взаємодії якихось компонентів операційної системи, всі інші програми призупиняються, і виконується так званий обробник переривання, який аналізує вміст регістрів та виконує відповідні дії. Загалом, переривання вперше було використано для виходу з помилкових ситуацій, але пізніше їх було пристостовано для обробки ситуацій з найвищим рівнем пріоритету. Переривання в системі розподілено між різними типами периферійних пристроїв, процесором та операційною системою.

Інструкції цієї групи дозволяють використовувати в програмах сервісні функції, забезпечувані через апарат переривань операційної системи. З цією метою генерується програмне переривання, ефект якого подібний ефекту апаратних переривань. Однак, процесор не виконує цикл передачі підтвердження переривання, якщо переривання ініційовано або програмою зв'язане з NMI. Інструкції переривань кожна по-своєму впли- вають на стан прапорів процесора.

ПЕРЕРИВАННЯ

Інструкція INT активізує процедуру, передбачену для обробки переривання з зазначеним номером. Покажчик стека SP зменшується на 2, у стек містяться прапори (у форматі інструкції PUSHF) і прапори TF і IF устанавливаютя в 0 (для заборони покрокового режиму і маскируемых переривань). Потім SP зменшується ще на 2, і в стек заноситься вміст регістра CS. Адреса покажчика переривання (тобто місцезнаходження адреси програми обробки переривання) обчислюється шляхом множення зазначеного в інструкції INT номера на 4: друге слово покажчика заміщає значення регістра CS. SP знову зменшується на 2, і в стек міститься

вміст регістра IP, а в сам IP заноситься перше слово покажчика. Якщо зазначений номер переривання 3, асемблер генерує коротку (1 байт) форму інструкції, відому як переривання по досягненню крапки виходу. Програмні переривання можуть використовуватися як "виклики супервізора", тобто для запиту сервісу операційної системи, зокрема, процедур, написаних для обробки апаратних переривань.

ПЕРЕРИВАННЯ, ЯКЩО Є ПЕРЕПОВНЕННЯ

По інструкції INTO генерується програмне переривання, якщо встановлений у 1 прапор OF; у противному випадку керування передається наступної інструкції без активізації процедури обробки переривання. Інструкція INTO звертається до необхідній процедурі (номер переривання - 4) через покажчик переривання, розташований по 16-ричному адресі 10, встановлює в 0 прапори TF і IF і в іншому працює також, як INT. Інструкція INTO може використовуватися після арифметичних чи логічних операцій для обробки можливих переповнень.

Наши рекомендации