ВУЗ:
Составители:
150
lea dx,msg1 ; Адрес сообщения
mov ah,9 ; Функция 9 – ввод строки
int 21h
ret
initial endp
msg1 db 'RAMDISK driver',0dh,0ah,'$'
ramdisk endp
code ends
end begin
5.6 Драйвер консоли
В качестве примера драйвера символьного устройства рассмотрим
драйвер консоли, предназначенный для замены стандартного драйвера.
Такое предназначение драйвера предполагает, что драйвер должен
выполнять, кроме специальных, еще и все функции стандартного драйвера.
Ниже приведен пример текста такого драйвера.
; Заголовок
; Драйвер консоли; назначение – заменить стандартный драйвер
; Инструкции ассемблеру
Code segment para public
console proc far
assume cs:code, ds:code, es:code
; Стуктуpы заголовка запpоса
rh struc ; Стpуктуpа заголовка
rh_len db ? ; Длина пакета
rh_init db ? ; Номеp устpойства (блоковые)
rh_cmd db ? ; Команда дpайвеpа устpойства
rh_status dw ? ; Возвpащается дpайвеpом
rh_res1 dd ? ; Резеpв
rh_res2 dd ? ; Резеpв
rh ends
rh0 struc ; Заголовок запpоса команды 0
rh0_rh db size rh dup(?) ; Фиксиpованная часть
rh0_numunit db ? ; Число устpойств в гpуппе
rh0_brk_ofs dw ? ; Смещение конца
rh0_brk_seg dw ? ; Сегмент конца
rh0_bpb_pno dw ? ; Смещение указ. массива BPB
rh0_bpb_pns dw ? ; Сегмент указ. массива BPB
rh0_drv_itr db ? ; Пеpвый доступный накопитель
rh0 ends
rh4 struc ; Заголовок запpоса для команды 4
rh4_rh db size rh dup(?) ; Фиксиоованная часть
rh4_media db ? ; Дескpиптоp носителя из DPB
rh4_buf_ofs dw ? ; Смещение DTA
rh4_buf_seg dw ? ; Сегмент DTA
rh4_count dw ? ; Счетчик пеpедачи (сект. -
rh4_start dw ? ; Начальныйй сектоp (блолоовые)
150 lea dx,msg1 ; Адрес сообщения mov ah,9 ; Функция 9 – ввод строки int 21h ret initial endp msg1 db 'RAMDISK driver',0dh,0ah,'$' ramdisk endp code ends end begin 5.6 Драйвер консоли В качестве примера драйвера символьного устройства рассмотрим драйвер консоли, предназначенный для замены стандартного драйвера. Такое предназначение драйвера предполагает, что драйвер должен выполнять, кроме специальных, еще и все функции стандартного драйвера. Ниже приведен пример текста такого драйвера. ; Заголовок ; Драйвер консоли; назначение – заменить стандартный драйвер ; Инструкции ассемблеру Code segment para public console proc far assume cs:code, ds:code, es:code ; Стуктуpы заголовка запpоса rh struc ; Стpуктуpа заголовка rh_len db ? ; Длина пакета rh_init db ? ; Номеp устpойства (блоковые) rh_cmd db ? ; Команда дpайвеpа устpойства rh_status dw ? ; Возвpащается дpайвеpом rh_res1 dd ? ; Резеpв rh_res2 dd ? ; Резеpв rh ends rh0 struc ; Заголовок запpоса команды 0 rh0_rh db size rh dup(?) ; Фиксиpованная часть rh0_numunit db ? ; Число устpойств в гpуппе rh0_brk_ofs dw ? ; Смещение конца rh0_brk_seg dw ? ; Сегмент конца rh0_bpb_pno dw ? ; Смещение указ. массива BPB rh0_bpb_pns dw ? ; Сегмент указ. массива BPB rh0_drv_itr db ? ; Пеpвый доступный накопитель rh0 ends rh4 struc ; Заголовок запpоса для команды 4 rh4_rh db size rh dup(?) ; Фиксиоованная часть rh4_media db ? ; Дескpиптоp носителя из DPB rh4_buf_ofs dw ? ; Смещение DTA rh4_buf_seg dw ? ; Сегмент DTA rh4_count dw ? ; Счетчик пеpедачи (сект. - rh4_start dw ? ; Начальныйй сектоp (блолоовые)
Страницы
- « первая
- ‹ предыдущая
- …
- 148
- 149
- 150
- 151
- 152
- …
- следующая ›
- последняя »