Page 112 - 4875
P. 112
old_cs dw 0
install:
mov ah, 35h
mov al, intNumber ;отримати адресу
попереднього
int 21h ;вектора переривання
intNumber
mov [old_ip], bx ;зберегти молодше слово
;адреси в old_ip
mov [old_cs], es ;зберегти старше слово
;адреси в old_cs
mov ah, 25h
mov al, intNumber
mov dx, offset intMyFunc
int 21h ;встановити нову адресу
вектора
mov dx, offset install ;завершити роботу
програми i залишити
int 27h ;резидентною частину
програми
;по мiтку install
ends
end start
Спрощенa структура резидентної програми на мові С-- подана
нижче:
?include ”DOS.H--”
?include ”TSR.H--”
Ξ
word OldVectAddr[2]={}; /*виділити місце для
старої адреси */
interrupt NewProg ()
{
$ pushf /* ініціалізація виклику */
111