From 143f34d941f32e0808fc9344d4c4126ff530d64a Mon Sep 17 00:00:00 2001 From: Andrew Date: Thu, 22 Oct 2020 21:03:24 +0400 Subject: =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D1=80?= =?UTF-8?q?=D0=B5=D1=88=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B2=D1=82=D0=BE=D1=80?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D1=81=D0=B5=D0=BC=D0=B5=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sem2/lab5/examp.asm | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 sem2/lab5/examp.asm (limited to 'sem2/lab5/examp.asm') 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 -- cgit v1.2.3