2.2.2 Считываем положение и размер курсора

INТ 10h, АН = 03 - Считать положение и размер курсора

Ввод: АН = 03 ВН = номер страницы
Вывод: DH, DL = строка и столбец текущей позиции курсора СН, CL = первая и последняя строки курсора

Возвращает текущее состояние курсора на выбранной странице (каждая страница использует собственный независимый курсор).

2.3 Вывод символов на экран

Каждый символ на экране описывается двумя байтами - ASCII-кодом символа и байтом атрибута, указывающим цвет символа и фона, а также является ли символ мигающим.

Атрибут символа:

Бит 7: символ мигает (по умолчанию) или фон яркого цвета (если его действие было переопределено видеофункцией 10h).

Биты 6 - 4: цвет фона. Бит 3: символ яркого цвета (по умолчанию) или фон мигает (если его действие было переопределено видеофункцией 11h).

Биты 2 - 0: цвет символа.

Цвета кодируются в битах, как показано в таблице №2.3 .

Таблица №2.3 Атрибуты символов

Обычный цвет Яркий цвет
000b черный темно-серый
001b синий светло-синий
010b зеленый светло-зеленый
011b голубой светло-голубой
100b красный светло-красный
101b пурпурный светло-пурпурный
110b коричневый желтый
111b светло-серый белый

2.3.1 Считываем символ и атрибут символа в текущей позиции курсора.

INT 10h, АН = 08 - Считать символ и атрибут символа в текущей позиции курсора

Ввод: АН = 08 ВН = номер страницы
Вывод: АН = атрибут символа AL = ASCII-код символа

2.3.1 Выводим символ с заданным атрибутом на экран

INT 10h, АН = 09 - Вывести символ с заданным атрибутом на экран

Ввод: АН = 09 ВН = номер страницы AL = ASCII-код символа BL = атрибут символа СХ = число повторений символа

С помощью этой функции можно вывести на экран любой символ, включая даже символы CR и LF, которые обычно интерпретируются как конец строки. В графических режимах СХ не должен превышать число позиций, оставшееся до правого края экрана.

Пример работы.

Пример № 2.2.1

. model tiny ; модель памяти, в которой сегменты кода, данных и стека объединены.
. code ; сегмент кода, который содержит данные.
org 100h ; начало СОМ-файла
begin: ; метка начала кода программы
mov ah,09 ; помещаем номер функции DOS "вывод строки (9)" в регистр АН.
mov bh,0 ; устанавливаем номер страницы
mov al, < ASCII-код символа > ; строка 12; заносим в регистр al - любой ASCII-код символа
 mov bl, 00011111b ; атрибут символа (белый на голубом)
mov cx,555 ; устанавливаем в счетчик кол-во выводимых символов
int 10h ; вызов прерывания DOS - вызов символа;
ret ; функция DOS "завершить программу"
end begin ; метка окончания кода программы

2.3.2 Выводим символ с текущим атрибутом на экран

INT 10h, АН = 0Ah - Вывести

Ввод: АН = 0Ah ВН = номер страницы AL = ASCII-код символа СХ = число повторений символа

Эта функция также выводит любой символ на экран, но в качестве атрибута символа используется атрибут, который имел символ, находившийся ранее в этой позиции.

2.3.3 Выводим символ в режиме телетайпа

INT 10h, АН = 0Eh - Вывести символ в режиме телетайпа

Ввод: АН = 0Eh ВН = номер страницы AL = ASCII-код символа

Символы CR (0Dh), LF (0Ah), BEL (7) интерпретируются как управляющие символы. Если текст при записи выходит за пределы нижней строки, экран прокручивается вверх. В качестве атрибута используется атрибут символа, находившегося в этой позиции.


Информация о работе «Разработка виртуальных лабораторных работ средствами эмулятора Emu8086»
Раздел: Информатика, программирование
Количество знаков с пробелами: 193894
Количество таблиц: 73
Количество изображений: 12

0 комментариев


Наверх