INT 10h, INT 10H или INT 16 — инструкция на языке ассемблера для процессора архитектуры x86, генерирующая программное прерывание BIOS 10hex, 17-й вектор прерывания в архитектуре x86. BIOS, как правило, связывает с этим вектором обработчик прерывания в реальном режиме, предоставляющий видеосервис. Он включает установку видеорежима видеоадаптера, вывод символов и строк, графические примитивы (чтение и запись пикселей в графическом режиме).

Вызов INT 10h довольно медленный, поэтому многие программы получают доступ к видеоадаптеру напрямую, без BIOS. Установка видеорежима, производимая как правило единожды, может быть выполнена при помощи BIOS. Однако, отрисовка должна выполняться быстро, поэтому для этого лучше подходит прямой доступ к видеопамяти, чем вызов прерываний BIOS для каждого пикселя.

Список функций видеосервиса ФункцияКод функцииПараметрыВозвращаемое значение Установка видеорежима AH=00h AL = номер режима AL = флаг видеорежима / байт режима CRT контроллера Установить форму курсора текстового режима AH=01h CH = начальная строка, CL = конечная строка

Обычно знакоместо имеет 8 строк, 0-7. Тогда CX=0607h — обычный курсор-подчеркивание, CX=0007h — всё знакоместо. Если задан 5-й бит CH, то это обычно означает «Скрыть курсор». Поэтому CX=2607h — невидимый курсор.

Некоторые видеокарты имеют 16 строк на знакоместо, 00h-0Fh.

Некоторые видеокарты не используют 5-й бит CH. В таком случае, для скрытия следует задать CH > CL (например CX=0706h) Установить позицию курсора AH=02h BH = страница, DH = строка, DL = столбец Получить позицию и форму курсора AH=03h BH = страница AX = 0, CH = начальная строка формы курсора, CL = конечная строка формы курсора, DH = строка, DL = столбец Получить позицию светового пера (Не работает на VGA системах) AH=04h AH = Статус (0=не активно, 1=активно), BX = пиксель X, CH = пиксель Y, CX = номер строки пикселя для режимов 0Fh-10h, DH = символ Y, DL = символ X Задать активную страницу AH=05h AL = номер страницы Прокрутка вверх AH=06h AL = число строк для прокрутки (0 = очистка, CH, CL, DH, DL используются), BH = атрибут цвета. CH = номер верхней строки, CL = номер левого столбца, DH = номер нижней строки, DL = номер правого столбца Прокрутка вниз AH=07h см. выше Считать символ и атрибуты на позиции курсора AH=08h BH = страница AH = цвет, AL = символ Записать символ и атрибуты на позиции курсора AH=09h AL = символ, BH = страница, BL = цвет, CX = сколько раз записать символ Записать символ на позиции курсора AH=0Ah AL = символ, BH = страница, CX = сколько раз записать символ Задать цвет фона/границы AH=0Bh, BH = 00h BL = Цвет фона/границы (граница только в текстовых режимах) Задать палитру AH=0Bh, BH = 01h BL = ID палитры (имело смысл в CGA адаптерах, но более новые видеокарты поддерживают это во многих или всех графических режимах) Задать пиксель AH=0Ch AL = цвет, BH = страница, CX = x, DX = y Прочитать цвет пикселя AH=0Dh BH = страница, CX = x, DX = y AL = цвет Консольный вывод символа AH=0Eh AL = символ, BH = страница, BL = цвет (только в графическом режиме) Получить текущий видеорежим AH=0Fh AL = видеорежим, AH = число знаковых столбцов, BH = текущая страница Вывести строку (EGA и выше) AH=13h AL = режим вывода, BH = страница, BL = цвет, CX = длина строки, DH = строка (на экране), DL = столбец, ES:BP = адрес

См. также Прерывание BIOS

Ссылки INT 10h на Ralf Brown Interrupt List INT 10h на www.ousob.com

Категория:Низкоуровневые языки программирования Категория:BIOS