ВУЗ:
Составители:
125
inc color
mov ax,1001h
int 10h
iret
new_int5 endp
resprog endp
ressize equ $-resprog ; Размер в байтах резидентной части
init proc near
; Проверка раличия резидентной программы в памяти
mov ax,0ff00h
int 2fh
cmp ax,0ffh
jnz first_start ; Не установлена
lea dx,msg ; Вывод сообщения о том,
mov ah,9 ; что драйвер уже загружен
int 21h
ret
first_start: mov ax,2505h ; Функция 25h, вектор 5
lea dx,new_int5
int 21h ; Запись нового вектора 5
mov ax,352fh ; Сохранение старого вектора прерывания 2Fh
int 21h
mov cs:old_int2fh_off,bx
mov cs:old_int2fh_seg,es
lea dx,new_int2Fh ; Запись нового вектора прерывания 2Fh
mov ax,252fh
int 21h
; Завершение программы с оставлением резидентной части в памяти
mov dx,(ressize+10fh)/16
mov ax,3100h
int 21h
init endp
Code ENDS
END resprog
Написать резидентную программу, записывающую содержимое
экрана в символьном режиме в файл. Программа должна анализировать
флаг активности DOS и не должна допускать повторной загрузки в память.
По ключу /u программа должна выгружаться из памяти с освобождением
занимаемого ей места. Замечание: приведенная ниже программа нормально
работает лишь под DOS до версии 5.0, так как в более поздних
версиях
иначе происходит работа с клавиатурой.
Code SEGMENT
Assume CS: Code, DS: Code
org 100h
resprog proc far
mov ax,cs
mov ds,ax ; DS = CS
jmp init ; Переход на инициализирующую секцию
125
inc color
mov ax,1001h
int 10h
iret
new_int5 endp
resprog endp
ressize equ $-resprog ; Размер в байтах резидентной части
init proc near
; Проверка раличия резидентной программы в памяти
mov ax,0ff00h
int 2fh
cmp ax,0ffh
jnz first_start ; Не установлена
lea dx,msg ; Вывод сообщения о том,
mov ah,9 ; что драйвер уже загружен
int 21h
ret
first_start: mov ax,2505h ; Функция 25h, вектор 5
lea dx,new_int5
int 21h ; Запись нового вектора 5
mov ax,352fh ; Сохранение старого вектора прерывания 2Fh
int 21h
mov cs:old_int2fh_off,bx
mov cs:old_int2fh_seg,es
lea dx,new_int2Fh ; Запись нового вектора прерывания 2Fh
mov ax,252fh
int 21h
; Завершение программы с оставлением резидентной части в памяти
mov dx,(ressize+10fh)/16
mov ax,3100h
int 21h
init endp
Code ENDS
END resprog
Написать резидентную программу, записывающую содержимое
экрана в символьном режиме в файл. Программа должна анализировать
флаг активности DOS и не должна допускать повторной загрузки в память.
По ключу /u программа должна выгружаться из памяти с освобождением
занимаемого ей места. Замечание: приведенная ниже программа нормально
работает лишь под DOS до версии 5.0, так как в более поздних версиях
иначе происходит работа с клавиатурой.
Code SEGMENT
Assume CS: Code, DS: Code
org 100h
resprog proc far
mov ax,cs
mov ds,ax ; DS = CS
jmp init ; Переход на инициализирующую секцию
Страницы
- « первая
- ‹ предыдущая
- …
- 123
- 124
- 125
- 126
- 127
- …
- следующая ›
- последняя »
