Основные функции прерывания MS DOS 21h

Прерывание 21h (DOS) предназначено для предоставления программисту различных услуг со стороны DOS. Этими услугами является набор функций.

Последовательность действий при использовании этих функций:

1. Поместить номер функции в регистр AH. Если используется функция с подфункцией, то номер подфункции обычно помещается в регистр AL.

2. Поместить передаваемые функции параметры в определенные регистры (для каждой ф-ции соответствующие)

3. Вызвать прерывание командой int 21h

4. Извлечь рез-ты работы функции из определенных регистров

Основные функции ввода, вывода для прерывания 21h:

00h - завершение работы программы

01h – ожидание набора символа с последующим его эхосопровождением и с проверкой на CTRL+BREAK

На выходе в AL - ACSII-код символа.

02h – изображение (вывод) символа с проверкой на CTRL+BREAK.

На входе в DL - ACSII-код символа

05h - вывод символа на принтер.

На входе в DL - ACSII-код символа

06h – изображение символа без проверки на CTRL+BREAK.

На входе в DL - ACSII-код символа

07h – ожидание набора символа без последующего его эхосопровождения и без проверки на CTRL+BREAK

На выходе в AL - ACSII-код символа.

08h – ожидание набора символа с последующим его эхосопровождением и с проверкой на CTRL+BREAK

На выходе в AL - ACSII-код символа.

09h - изображение строки символов с проверкой на CTRL+BREAK.

На входе - DS:DX = начальному адресу строки с символом $ на конце.

0ah – чтение строки в буфер клавиатуры.

На входе DS:DX = адрес буфера с форматом:

1 байт - размер буфера для ввода (формирует пользователь)

2 байт - число фактически введенных символов (заполняет система по окончанию ввода-нажатию Enter (0dh), этот символ не считает)

3 байт и далее - введенная строка с символом 0dh на конце

На выходе - введенная строка в буфере

0bh – чтение состояния клавиатуры

На выходе AL = 0 - буфер НЕ пуст

AL = offh – буфер клавиатуры пуст

0сh – освобождение буфера клавиатуры и вызов нужной функции

На входе в AL – номер нужной функции

На выходе – регистры в соответствии с вызываемой функцией

Проверка на CTRL+BREAK означает, что если в процессе работы данной функции была нажата эта комбинация клавиш, то по умолчанию происходит прерывание 23h и выход из программы.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: