Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
29
Добавлен:
29.03.2016
Размер:
460.29 Кб
Скачать

Функции прерывания iнт 10н

Обработчик прерывания INT10Н выполняет множество функций (выбираемых по коду функции в регистре АН), применяющихся для работы с дисплеем. В зависимости от возвращаемых значений обработчик может сохранять значения регистров ВХ, СХ,DХ,DI,SI,DS,ESиBP. Некоторые функции могут устанавливать или считывать отдельные биты и элементы данных в области видео данныхBIOSс адресов 0040:nn.

Прерывание INT10Н пытается обработать все, что вы ему передаете, и не возвращает сигналов о выполнении или флагов ошибок. Будьте аккуратны и осторожны, передавая коды функций обработчику этого прерывания; вам не удастся нанести системе непоправимый ущерб, но в результате ваших действий экран может стать пустым и темным, и, как следствие, вам придется перезапустить компьютер.

Ниже описаны функции прерывания INT10Н.

Функция 0н прерывания int10н: установка видеорежима

Эта функция предназначена для установки видеорежима. Загрузите код функции (00Н) в регистр АН и код режима, который хотите установить — в АL. В следующем примере устанавливается стандартный цветной текстовый режим для любого типа цветного монитора:

Эта операция не возвращает значений. Она также очищает экран, но это ее действие можно отменить, установив бит 7 режима в 1 и передан в АLсоответствующий код с помощьюMOV AL,83Н.

Функция 01н прерывания int10н: установка размера курсора

Курсор не является частью набора символов ASCIIи существует только в текстовом режиме. Видеоконтроллер управляет положением курсора и его размером, и размер можно изменять специальной функцией 01Н прерыванияINT10Н. Стандартный размер курсора для цветного адаптераVGA— строка 13 для вершины и 14 для основания, а для монохромного — 6 для вершины и 7 для основания. Для изменения размера курсора по вертикали с помощью функции 01Н установите в регистрах следующие значения:

  • в СН (биты 4—0) — вершина курсора (начальная закрашенная строка);

  • в СL(биты 4—0) — нижний край курсора (конечная закрашенная строка).

В следующем примере курсор увеличивается до максимального размера (0:14):

Операция не возвращает значений. После ее выполнения курсор примет вид закрашенного мигающего прямоугольника. Его размеры можно изменять в любых допустимых пределах, например, 04:08, 03:10 и т.д. Установка значения 20Н в СХ делает курсор невидимым: MOV СХ,20Н. Курсор сохраняет свои параметры до тех пор, пока они снова не будут изменены.

Функция 02н прерывания int10н: установка положения курсора

Эта операция в текстовом режиме устанавливает курсор в произвольное положение на экране согласно координатам в формате строка:столбец (функция 1ЗН также устанавливает курсор). Установите значения в следующих регистрах: ВН номер страницы (0 по умолчанию), DH=строка,DL=столбец. В нижеприведенном примере курсор устанавливается в строку 12, столбец 30 на странице 0:

Функция 0зн прерывания int10н: получение состояния курсора

Функция 0ЗН может использоваться для определения текущих столбца, колонки и размера курсора в текстовом режиме. Она может использоваться, например, в ситуациях, когда ваша программа должна временно использовать экран, а затем вернуть его в прежнее состояние. Загрузите номер страницы в BH, так же, как для функции 02H:

Операция не изменяет состояния регистров AXиBXи возвращает такие значения:

В следующем примере функция 03Hиспользуется для получения данных о курсоре; после этого функция 02Hиспользуется для перемещения курсора в следующий столбец на экране

Соседние файлы в папке Лекции