Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.136.154.103] |
|
Сообщ.
#1
,
|
|
|
Ребята, помогите, плз. Сабж. - это возможно ? Если да, то как ?
|
Сообщ.
#2
,
|
|
|
Было дело я как-то сварганил такую вот прогу....
P.S. Здесь, конечно, это ненмого коряво будет выглядеть.... .MODEL Tiny<br>.286<br>.CODE<br>ORG 100h<br><br>INTNO equ 08h ; Номер прерывания<br>MIN equ 12<br><br>Start: ; ________ Начало программы ________<br> jmp SetIntVec ; Прыжок на установщик вектора<br><br>;--------------------------------------------------------------------------;<br>; ____________________ Начало основной TSR программы. ____________________ ;<br>;--------------------------------------------------------------------------;<br><br>Timer DB 0<br>Handler: ; Обработчик прерывания<br> inc cs:Timer<br> jnz RealInt<br> pusha ; Сохранить все регистры<br><br> mov cx,255<br>RepL: mov dx,3C7h<br> mov al,cl<br> out dx,al<br> add dx,2<br><br> in al,dx<br> mov ah,al<br> in al,dx<br> mov bl,al<br> in al,dx<br> mov bh,al<br><br> cmp ah,MIN<br> jb NextBL<br> dec ah<br>NextBL: cmp bl,MIN<br> jb NextBH<br> dec bl<br>NextBH: cmp bh,MIN<br> jb Next<br> dec bh<br>Next:<br> mov al,cl<br> dec dx<br> out dx,al<br> inc dx<br><br> mov al,ah<br> out dx,al<br> mov al,bl<br> out dx,al<br> mov al,bh<br> out dx,al<br><br> loop RepL<br> popa ; Восстановить все регистры<br>RealInt:<br> db 0EAh,0,0,0,0 ; Возвращение управления INTNO<br><br>;--------------------------------------------------------------------------;<br>; _________________________ Конец TSR программы. _________________________ ;<br>;--------------------------------------------------------------------------;<br><br>SetIntVec:<br> mov ax,3500h + INTNO ; Получить вектор<br> int 21h ; прерывания INTNO<br> mov WORD PTR RealInt[1],bx ; Сохранить адрес<br> mov WORD PTR RealInt[3],es ; старого обработчика<br> mov ah,25h ; Установить вектор<br> mov dx,OFFSET Handler ; прерывания INTNO по<br> int 21h ; адресу Handler'а<br> mov ah,9<br> lea dx,Message<br> int 21h ; Выводим мессаг<br> mov ah,49h<br> mov es,ds:[2Ch]<br> int 21h<br> mov dx,OFFSET SetIntVec ; Установка резидентной<br> int 27h ; части программы<br>;--------------------------------------------------------------------------;<br>Message DB 13,10,'+---------------------------+'<br> DB 13,10,'¦ _________ LDown _________ ¦'<br> DB 13,10,'¦ Автор Красников Е.П, 1997 ¦'<br> DB 13,10,'+---------------------------+'<br> DB 13,10,24h<br><br>END Start<br> |