информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Страшный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Делись... А в чем ошибка ? 17.12.02 20:21  Число просмотров: 1793
Автор: SLaViR Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Резидент запускается для DOS 6.22, но потом при запуске любой другой программы подвисает тачку наглухо.
Кратко суть программы. Для текущего каталога, по нажатию на клавишу проверяет наличие файла. Если файл есть, выводит в левом верхнем углу хендл, если нет, то выводит код ошибки.
Буду очень признателен.

;SKAN.ASM Пример резидентной программы. Программа не претендует на оптимальность.
; TASM scan
; tlink scan
; exe2bin scan.exe scan.com
; scan.com
code_seg_a segment
assume cs:code_seg_a, ds:code_seg_a
org 100h
scan proc far
Start: jmp Install
int9: push ax
push bx
push cx
push di
push dx
push es
push ds
push cs
pop ds
mov ah,3dh
mov al,2
lea dx,word ptr ds:file
int 21h
jc error
mov word ptr ds:handle1,ax
mov bx,word ptr ds:handle1
mov ah,3eh
int 21h
error:
;---------------------------------
push ax
mov cx,6
m: mov bx,16 ; база
xor dx,dx
div bx
mov di,dx
mov bl, byte ptr cs:table[di]
mov di,cx
mov byte ptr cs:buf[di],bl
cmp ax,0h
jle m1
loop m
m1:
MOV AX, 0B800H ; Адрес видеобуфера
MOV ES, AX
MOV bh, 7 ; Байт атрибутов БЕЛЫЙ
xor ax,ax
m2: mov di,cx
mov bl, byte ptr cs:buf[di]
mov di,ax
mov es:[di],bx
inc ax
inc ax
inc cx
cmp cx,7
jne m2
mov di,ax
mov es:[di],0720h ;черный пробел
;-----------------------------------
pop ax
pop ds
pop es
pop dx
pop di
pop cx
pop bx
end_int9:
pop ax
db 0EAh ; JMP FAR
int9_sav label dword
dw 0,0
table: db "0123456789ABCDEF"
file: db 'somefile.prn',0
handle1: dw 0
buf: db 6 dup (?)
pgm_len equ $-int9
install:
push cs
pop ds
mov ax,3509h ; дать адрес обработчика прерывания
int 21h
mov word ptr [int9_sav],bx
mov word ptr [int9_sav+2],es
lea dx,int9
mov ax,2509h ; установит обработчик прерывания
int 21h

lea dx,load
mov ax,0900h ; вывести сообщение
int 21h

mov ax,cs:[2ch]
mov es,ax
mov ah,49h
int 21h ; Освобождаю среду

; mov dx,((offset pgm_len+15)/16)+010h ; размер резидентной части
mov dx,285
mov ax,3100h
int 21h ; завершить программу, оставив часть в памяти

load: db 0Ah, 0Dh, 'SCAN',0Ah, 0Dh
db 'On left top corner show status of somefile.prn', 0Ah, 0Dh
db '$'
scan endp
code_seg_a ends
end start
<programming> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach