Ассемблер и программирование для IBM PC



     каналы для взрослых онлайн, o la. |     

ГЛАВА 9. Экранные операции II: Расширенные возможности - часть 5


Ассемблер для IBM PC. Глава 9 204

MOV AH,05 ;Установить активную страницу MOV AL,страница ;Номер страницы INT 10H ;Вызвать BIOS

AH=06: Прокрутка экрана вверх. Когда программа пытается выдать текст на строку ниже последней на экране, то происхо дит переход на верхнюю строку. Даже если с помощью прерыва ния будет специфиpован нулевой столбец, все равно предпола гается новая строка, и нижние строки на экране будут испорчены. Для решения этой проблемы используется прокрутка экрана. Ранее код 06 использовался для очистки экрана. В тексто вом режиме установка в регистре AL значения 00 приводит к полной прокрутке вверх всего экрана, очищая его пробелами. Установка ненулевого значения в регистре AL определяет количество строк прокрутки экрана вверх. Верхние строки уходят с экрана, а чистые строки вводятся снизу. Следующие команды выполняют прокрутку всего экрана на одну строку:

MOV AX,0601H ;Прокрутить на одну строку вверх MOV BH,07 ;Атрибут: нормальный, черно-белый MOV CX,0000 ;Координаты от 00,00 MOV DX,184FH ; до 24,79 (полный экран) INT 10H ;Вызвать BIOS

Для прокрутки любого количества строк необходимо устано вить соответствующее значение в регистре AL. Регистр BH содержит атрибут для нормального или инвертированного отобра жения, мигания, установки цвета и т.д. Значения в регистрах CX и DX позволяют прокручивать любую часть экрана. Ниже объясняется стандартный подход к прокрутке:

1. Определить в элементе ROW (строка) значение 0 для установки строки положения курсора. 2. Выдать текст и продвинуть курсор на следующую строку. 3. Проверить, находится ли курсор на последней строке (CMP ROW,22). 4. Если да, то увеличить элемент ROW (INC ROW) и выйти. 5. Если нет, то прокрутить экран на одну строку и, исполь зуя ROW переустановить курсор.

AH=07: Прокрутка экрана вниз. Для текстового режима прокрутка экрана вниз обозначает удаление нижних строк и вставка чистых строк сверху. Регистр AH должен содержать 07, значения остальных регистpов аналогичны функции 06 для прокрутки вверх.




Содержание  Назад  Вперед