Page 109 - 4875
P. 109
Виклик старого обробника можна здійснювати за допомогою
команд:
pushf
call [dword ptr old_ip]
Крім того дозволяється використовувати адресу попереднього
обробника, безпосередньо в коді нового обробника.
pushf
db 9A ;код машинної команди
call FAR
9
old_int dd ? ;
-
iret
Для випадку коли новий обробник переривань
використовується для розширення можливостей старого обробника
замість виклику call FAR використовується jmp FAR
new_int proc far
-
jmp FAR dword ptr[old_ip]
new_int ENDP
Для забезпечення перевірки наявності резидентної програми в
пам’яті використовують наступні методи:
1 Сканування послідовності із МСВ блоків, визначення їх
власників, та порівняння імені власника блоку з іменем
програми, що запустилась (резидентної програми, що
виконує перевірку).
2 Використання спеціальної сигнатури, що розташована в
коді резидентної програми.
3 Використання „відлуння” в послідовностях ISR.
9
old_int – адреса старого обробника.
108