сообщений, который перехватывает прерывание 21h функцию 09h (Прога под MS DOS) и записывает то что выводиться в файл printed.log. И почему-то , не понимаю почему она работает некоректно. Во-первых, не записывает выведенное в лог файл ( он находится в папке с логгером ). Во-вторых, выводиться перехваченное сообщение некоректно, т.е. с лишними символами и останавливает работу всей системы. Исходники ниже. 
                  
                  
                  CSEG segment
                  
                  
                  org 100h
                  
                  
                  Start:
                  
                  
                          jmp Init
                  
                  
                          
                  
                  
                          Int_21h_proc proc
                  
                  
                                  cmp ah, 09h
                  
                  
                                  
                  
                  
                                  je Ok_09
                  
                  
                                  
                  
                  
                                  jmp dword ptr cs:[Int_21h_vect]
                  
                  
                                  
                  
                  
                                  Ok_09:   
                  
                  
                                          push ax 
                  
                  
                                          push bx
                  
                  
                                          push cx
                  
                  
                                          push dx
                  
                  
                                          push ds
                  
                  
                                          
                  
                  
                                          push dx
                  
                  
                                          
                  
                  
                                          mov ah, 4Eh
                  
                  
                                          xor cx, cx
                  
                  
                                          lea dx, logfile
                  
                  
                                          int 21h
                  
                  
                                          
                  
                  
                                          mov ax, 3D02h
                  
                  
                                          mov dx, 9Eh
                  
                  
                                          int 21h                       
                  
                  
                  
                  
                  
                                          xchg bx, ax
                  
                  
                                          
                  
                  
                                          mov ah, 40h
                  
                  
                                          pop dx
                  
                  
                                          mov cx, 0Fh
                  
                  
                                          int 21h
                  
                  
                                          
                  
                  
                                          mov ah, 3Eh
                  
                  
                                          int 21h
                  
                  
                                          
                  
                  
                                          mov ah, 09h
                  
                  
                                          int 21h
                  
                  
                                          
                  
                  
                                          pop ds
                  
                  
                                          pop dx
                  
                  
                                          pop cx
                  
                  
                                          pop bx
                  
                  
                                          pop ax
                  
                  
                                          
                  
                  
                                          pushf
                  
                  
                                          call dword ptr cs:[Int_21h_vect]
                  
                  
                                          
                  
                  
                                          iret
                  
                  
                                          
                  
                  
                                          Int_21h_vect dd ?
                  
                  
                                          logfile db "PRINTED.LOG",0
                  
                  
                          Int_21h_proc endp
                  
                  
                          
                  
                  
                          Init:
                  
                  
                                  mov ax, 3521h
                  
                  
                                  int 21h
                  
                  
                                  
                  
                  
                                  mov word ptr Int_21h_vect, bx
                  
                  
                                  mov word ptr Int_21h_vect+2, es
                  
                  
                                  
                  
                  
                                  mov ax, 2521h 
                  
                  
                                  
                  
                  
                                  mov dx, offset Int_21h_proc
                  
                  
                                  int 21h
                  
                  
                                  
                  
                  
                                  mov dx, offset Init
                  
                  
                                  int 27h
                  
                  
                                  
                  
                  
                  CSEG ends
                  
                  
                  end Start
                  
                  
                
Так мне никто не поможет с моей проблемой?
Обсуждают сегодня