dw initialize dw check_media dw
functions LABEL WORD ; Таблица функций
dw initialize dw check_media dw make_bpb dw ioctl_in dw input_data dw nondestruct_in dw input_status dw clear_input dw output_data dw output_verify dw output_status dw clear_output dw ioctl_out dw Device_open dw Device_close dw Removable_media
; Выход из драйвера, если функция не поддерживается
check_media: make_bpb: ioctl_in: nondestruct_in: input_status: clear_input: output_verify: output_status: clear_output: ioctl_out: Removable_media: Device_open: Device_close: output_data: input_data:
or es:word ptr [bx]+3,8103h jmp quit
;=========================================================== quit: or es:word ptr [bx]+3,100h pop bp pop di pop si pop dx pop cx pop bx pop ax pop ds pop es ret
;=========================================================== ; Процедура выводит на экран строку ; символов в формате ASCIIZ
dpc proc near push si dpc_loop: cmp ds:byte ptr [si],0 jz end_dpc mov al,ds:byte ptr [si] @@out_ch al inc si jmp dpc_loop
end_dpc: pop si ret dpc endp
;=========================================================== hello db 13,10,'++' db 13,10,'¦ *STOP* (C)Frolov A., 1990 ¦' db 13,10,'++' db 13,10 db 13,10,'Enter password...' db 13,10,0
;=========================================================== initialize:
lea ax,E_O_P ;смещение конца программы в AX mov es:word ptr [bx]+14,ax ;помещаем его в заголовок mov es:word ptr [bx]+16,cs ;
; Стираем экран
mov dh,18h mov dl,80h
xor cx,cx mov bh,7 xor al,al mov ah,6 int 10h
; Устанавливаем курсор в левый верхний угол экрана
mov bh,0 xor dx,dx mov ah,2 int 10h
; Выводим сообщение
mov ax,cs mov ds,ax mov si,offset hello call dpc
; Ожидаем ввода правильного пароля
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий