Page 106 - 4875
P. 106

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

                              New_int_hender proc tar
                             push a                                  ;збереження значення всіх
                           регістрів
                             –                                       ;код власної функції
                           обробника
                             pushf
















                                                           105
   101   102   103   104   105   106   107   108   109   110   111