diff options
Diffstat (limited to 'sem2/lab5/examp.asm')
| -rw-r--r-- | sem2/lab5/examp.asm | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/sem2/lab5/examp.asm b/sem2/lab5/examp.asm new file mode 100644 index 0000000..4da04fa --- /dev/null +++ b/sem2/lab5/examp.asm @@ -0,0 +1,54 @@ +new_65h proc + ;Процедура наложения на экран цветного окна для динамической + ;очистки экрана по ходу выполнения программы + mov АН, 06h ;Функция задания окна + mov AL,0 ;Режим создания окна + mov BH,1Bh ;Атрибут всех символов в окне: светло-бирюзовые символы, синий фон + mov СХ,0 ;Координаты верхнего левого угла 0,0 + mov DH,24 ;Нижняя Х-координата + mov DL,79 ;Правая Х-координата + int 10h ;Прерывание BIOS + iret +new_65h endp + +main proc + mov AX,data + mov DS,AX + ;Заполним вектор прерывания пользователя адресом нашего обработчика + mov АН,25h ;Функция заполнения вектора прерывания + mov AL,65h ;Номер вектора + mov DX,offset new_65h ;Смещение прикладного обработчика + push DS ;Сохранны DS + push CS ;Настроим DS на сегмент команд (в + pop DS ;котором находится наш обработчик) + int 21h ;Вызовем DOS + pop DS ;Восстановим DS + ;Будем в цикле выводить ил экран строки с предварительной очисткой экрана + gogo: + int 65h ;Вызов прикладного обработчика (очистка + ;экрана перед выводом текста) + ;Позиционируем курсор + mov АН,02h ;Функция позиционирования + mov BH,0 ;Видеостраница + mov DH,line ;Строка + mov DL,coloumn ;Столбец + int 10h ;Прерывание BIOS + + ;Выведем на экран строку символов + mov АН,0Ah ;функция вывода символа без атрибута + mov AL,sym ;Символ + mov BH,0 ;Видеостраница + mov СХ,60 ;Коэффициент повторения + int 10h ;Прерывание BIOS + ;Изменим символ и позицию и зациклим программу с возможностью + ;завершения по нажатию клавиш /C + inc sym ;Следующий символ по таблице ASCII + inc line ;Следующая строка экрана + mov АН,08h ;Функция ввода баз эха, чувствует /C + int 21h + jmp gogo ;Бесконечный цикл +main endp ;Поля данных + +line db 2 ;Строка +coloumn db 10 ;Столбец +sym db 0lh ;Выводимый символ
\ No newline at end of file |