Современные решения

для защиты Windows приложений

и восстановления исходного кода
Автор: xen. Дата публикации: 10.08.2004

Проверка готовности накопителя


Программа проверяет готовность устройства. Если устройство не готово, программа просит нажать клавишу ESC.

; Проверяем корректность и готовность устройства. ; Полностью завершенная COM-программа. codeseg segment assume CS:codeseg, DS:codeseg, ES:codeseg org 100h Begin: jmp Start ; ----переменные---- Intvec dd ? ;старый вектор прерывания 24h Luukku db 'Disk not valid or ready. Hit Esc!',10,13,'$' Start: ;------------ Основная программа ----------- ;Перехватываем прерывание 24h push ES mov AX,3524h ;вектор int 24h записывается в ES:BX int 21h mov word ptr Intvec,BX ;смещение mov word ptr Intvec[2],ES ;сегмент pop ES ;load a new int 24h mov AX,2524h ;новый вектор 24h mov DX,offset CError ;адрес int 21h ;код для проверки готовности устройства mov DL,1 ;1 - A:, 2 - B: и т.д.. mov AH,36h ;функция определения свободного места на диске int 21h cmp AX,-1 ;AX - число секторов в кластере -1 je Loppu ;выход если нет диска или не готов ;устройство готово ;здесь ваш код.... Loppu: int 20h ;завершаем COM-программу ;-------- новое прерывание int 24h ----------------- assume DS:nothing ;будут использоваться дальние вызовы CError proc far pushf ;сохраняем флаги or AH,AH js EiLevyke push DX push DS mov AX,CS mov DS,AX assume DS:Codeseg mov DX,offset Luukku mov AH,9 ;выводим строку DS:DX int 21h mov AH,0 int 16h ;ждем нажатия клавиши cmp AL,27 ;это Esc ? jne EiEsc mov AH,4Ch ;завершаем программу int 21h EiEsc: pop DS assume DS:nothing pop DX popf mov AL,1 ;еще раз iret ;возвращаем управление главной программе EiLevyke: popf ;восстанавливаем флаги jmp CS:Intvec ;вызываем старый обработчик int 24h CError endp codeseg ends end Begin


Комментарии

отсутствуют

Добавление комментария


Ваше имя (на форуме):

Ваш пароль (на форуме):

Комментарии могут добавлять только пользователи,
зарегистрированные на форуме данного сайта. Если Вы не
зарегистрированы, то сначала зарегистрируйтесь тут

Комментарий: