Реферат: Драйвер виртуального диска

;

les di,[req_ptr] ; получить адрес блока

mov bl,request.command ; запроса и команду

;

; установим заранее код ошибки на случай если команда неверная

;

mov ax,(ST_ERROR OR UNKNOWN_COMMAND)

cmp bl,[max_cmd] ; команда поддерживается ?

ja exit ; нет - отвергаем ее

;

; Выдаем указанную команду на выполнение соответствующему обработчику.

; Каждый обработчик получает управление с CS и DS установленными на

; сегмент драйвера и ES:DI указывающем на блок запроса. Свой статус

; обработчики возвращают в регистре AX.

;

xor bh,bh ; BX - индекс в таблице

shl bx,1 ; команд

IFDEF DEBUG

call print_command ; выдаем имя обрабатываемой

ENDIF ; команды

call word ptr jumptab[bx] ; вызываем обработчик

;

; Перешлем статус из регистра AX в слово состояния блока запроса

;

exit: push cs ; установка локального

pop ds ; сегмента данных

;

les di,[req_ptr] ; получим адрес блока запроса

or ax,ST_DONE ; установим бит DONE

К-во Просмотров: 642
Бесплатно скачать Реферат: Драйвер виртуального диска