Скачиваний:
26
Добавлен:
15.06.2014
Размер:
28.16 Кб
Скачать

Прерывания

Прерывание представляет собой операцию, которая приостанавливает

выполнение программ для специальных системных действий. Необходимость

прерываний обусловлено двумя основными причинами: преднамеренный запрос

таких действий, как операции ввода-вывода на различные устройства и

непредвиденные программные ошибки (например, переполнение при делении).

Команда INT прерывает обработку программы, передает управление в DOS

или BIOS для определенного действия и затем возвращает управление в

прерванную программу для продолжения обработки. Наиболее часто прерывание

используется для выполнения операций ввода или вывода. Для выхода из

программы на обработку прерывания и для последующего возврата команда INT

выполняет следующие действия:

- уменьшает указатель стека на 2 и заносит в вершину стека

содержимое флагового регистра;

- очищает флаги TF и IF;

- уменьшает указатель стека на 2 и заносит содержимое регистра

CS в стек;

- уменьшает указатель стека на 2 и заносит в стек значение

командного указателя;

- обеспечивает выполнение необходимых действий;

- восстанавливает из стека значение регистра и возвращает

управление в прерванную программу на команду, следующую после INT.

Этот процесс выполняется полностью автоматически. Необходимо лишь

определить сегмент стека достаточно большим для записи в него значений

регистров.

Основные прерывания BIOS.

INT 05H. П е ч а т ь э к р а н а. Выполняет вывод содержимого экрана

на печатающее устройство. Команда INT 05H выполняет данную операцию из

программы, а нажатие клавишей Ctrl/PrtSc - с клавиатуры. Операция

запрещает прерывания и сохраняет позицию курсора.

INT 10H. У п р а в л е н и е д и с п л е е м. Обеспечивает экранные

и клавиатурные операции, детально описанные в гл.9.

INT 12H З а п р о с р а з м е р а ф и з и ч е с к о й п а м я т и.

Возвращает в регистре AX размер памяти в килобайтах, например, шест.200

соответствует памяти в 512 К. Данная операция полезна для выравнивания

размера программы в соответствии с доступной памятью.

INT 16H. В в о д с к л а в и а т у р ы. Обеспечивает три типа

команд ввода с клавиатуры, подробно описанные в гл.9.

INT 19H. П е р е з а п у с к с и с т е м ы. Данная операция при

доступном диске считывает сектор 1 с дорожки 0 в область начальной

загрузки в памяти (сегмент 0, смещение 7C00) и передает управление по

этому адресу. Если дисковод не доступен, то операция передает управление

через INT 18H в ROM BASIC. Данная операция не очищает экран и не

инициализирует данные в ROM BASIC, поэтому ее можно использовать из

программы.

ПРЕРЫВАНИЯ DOS

INT 20H. З а в е р ш е н и е п р о г р а м м ы. Запрос завершает

выполнение программы и передает управление в DOS. Данный запрос обычно

находится в основной процедуре.

INT 21H. З а п р о с ф у н к ц и й DOS. Основная операция DOS,

вызывающая определенную функцию в соответствии с кодом в регистре AH.

Назначение функций DOS описано в следующем разделе.

INT 23H. А д р е с п о д п р о г р а м м ы р е а к ц и и н а

Ctrl/Break. (см.INT 24H).

Соседние файлы в папке Ответы на билеты