Резидентные программы - Assembler
Формулировка задачи:
Помогите осилить лабу
"При нажатии клавиши F1 программа очищает экран и безостановочно выводит на экран сообщение "Не хочу вам помогать!", прокручивая при этом экран вверх. Секунд через 10-20 этот процесс прекращается, восстанавливается экран, и работа ПЭВМ продолжается обычным образом."
Решение задачи: «Резидентные программы»
textual
Листинг программы
; fasm code... ; Резидент. Перехватывает F1 ;---------------------------- org 100h push setup ret ;настройки.. new_9: db 60h in al,60h ;читаем клаву cmp al,3Bh ;F1 ? jne @ToHell ;нет! ;cut ----------------8<----------------------- ;.... ;cut ----------------8<----------------------- @ToHell: db 61h,0EAh ;на старый вектор old_9: dw 0,0 msg db 'Damned Help!!!' len = $-msg ;======= Перехват вектора(9) ========================== setup: mov ax,3509h ;запомним оригинал int 21h ; mov [old_9],bx ; mov [old_9+2],es ; mov ax,2509h ;ставим свой обработчик mov dx,new_9 ; int 21h ; mov dx,setup ;всё-что выше, останется в памяти int 27h ;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д