Page 106 - 4875
P. 106
- перехоплює переривання Ctrl+Break, переривання критичних
помилок DOS, звернення до диску, таймеру, тощо.
Виконання наведених умов дозволяє підвищити надійність
функціонування резидентної програми.
Резидентна частина містить один або декілька обробників
переривань, управління на які передається в результаті генерування
апаратного переривання або виклику інструкції int (програмного
переривання).
Обробники переривань обов’язково повинні виконувати:
- перед початком роботи зберегти значення всіх регістрів, що
будуть використовуватися обробником;
- перед зверненням роботи поновити попередньо збережені
регістри.
При встановленні обробників переривань, що входять до
резидентної частини використовуються наступні схеми:
1 Каскадне включення – встановлення нового обробника, при
якому на нього передається управління у визначеному
порядку виникнення програмного переривання, після чого
викликається старий обробник переривань;
2 Старий обробник заміняється – встановлення нового
обробника, при якому старий заміняється (тобто його
виклик не здійснюється).
Операція перехоплення переривань – це фактично запис точки
входу в новий обробник переривань в таблиці векторів переривань.
Після виконання такої операції генерування апаратного переривання
система буде передавати управління (активізовувати) на новий
обробник. При цьому бажано, старий вектор переривань зберегти в
області даних резидентної частини для забезпечення каскадного
включення або поновлення після вигрузки нового обробника.
New_int_hender proc tar
push a ;збереження значення всіх
регістрів
– ;код власної функції
обробника
pushf
105