Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
асс 2-1-1печать.doc
Скачиваний:
16
Добавлен:
03.05.2015
Размер:
231.94 Кб
Скачать

Работа с экраном

Запросы и команды остаются на экране, пока не будут смещены в результате прокручивания ("скролинга") или переписаны на этом же месте другими запросами или командами. Перед выполнением любой программы экран следует очистить. Очищаемая область экрана может начинаться в любой позиции и заканчиваться в любой другой позиции с большим номером. В следующем примере выполняется очистка всего экрана, для чего начальное значение координат строки и столбца зано-сится в регистр DX, значение 07Н - в регистр BH и 0600H - в регистр AX .

MOV AX,0600H ;AH 06 (прокрутка),AL 00 (весь экран)

MOV BH,07Н ; цвет экрана/фон символа (черно/белый)

MOV CX,0000 ; Верхняя левая позиция

MOV DX,184FH ; Нижняя правая позиция

Int 10h ; Передача управления в bios

Значение 06 в регистре AH указывает команде INT 10H на выпол-нение операции очистки экрана. Эта операция очищает экран пробелами. Если по ошибке нижняя правая позиция установлена больше, чем 184Fh, то очистка перейдет вновь к началу экрана и вторично заполнит некото-рые позиции пробелами. Для монохромных экранов это не вызывает каких-либо неприятностей, но у некоторых цветных мониторов могут возникнуть серьезные ошибки.

AH=05: Выбор активной страницы. Новая страница устана-вливается для цветных текстовых режимов от 0 до 3.

MOV AH,05 ; Установить активную страницу

MOV AL, страница ;Номер страницы

Int 10h ; Вызвать bios.

AH=06: Прокрутка экрана вверх. Когда программа пытается выдать текст на строку ниже последней на экране, то происходит пе-реход на верхнюю строку. Даже если с помощью прерывания будет выбран нулевой столбец, все равно предполагается новая строка, и нижние строки на экране будут испорчены. Для решения этой пробле-мы используется прокрутка экрана. Ранее код 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 позволяют про-кручивать любую часть экрана.

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

Установка курсора

Экран можно представить в виде двумерного пространства с адре-суемыми позициями, в любую из которых может быть установлен курсор. Обычный видеомонитор имеет 25 строк (нумеруемых от 0 до 24) и 80 столбцов (нумеруемых от 0 до 79). В табл.1 приведены некото-рые примеры положений курсора на экране. Используя команду

INT 10H, проводят установку курсора в любую позицию экрана.

Пример установки курсора на 5-ю строку и12-й столбец:

MOV AH,02 ;Запрос на установку курсора

MOV BH,00 ;Экран 0

MOV DH,05 ;Строка 05

MOV DL,12 ;Столбец 12

INT 10H ; Передача управления в BIOS

Значение 02 в регистре AH указывает команде INT 10H на выполне-ние операции установки курсора. Значения строки и столбца должны быть в регистре DX, а номер экрана (или страницы) в регистре BH (обычно 0). Содержимое других регистров несущественно. Для установ-ки строки и столбца можно также использовать одну команду MOV DX, определяя сразу значения координат по строке и по столбцу:

MOV DX,050CH ;Строка 5, столбец 12.

Таблица 1

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]