Шаг 4 - Что такое прерывание

В прошлом шаге мы использовали команду INT:

mov ah,40h 
int 21h 
mov ah, 04Ch 
int 21h 

Int - это сокращение слова Interrupt что на русский переводиться как прерывание. Выглядит это команда так:

Int номер

То есть у каждого прерывания есть номер. И все таки, что это такое? Появилось понятие прерывания вместе с созданием ЭВМ. Тогда стала задача о совместной работе процессора и медленных внешних устройств. Хорошим примеров может служить клавиатура. Когда пользователь нажмет клавишу не известно. Это может случиться в любой момент, вот когда он нажимает клавишу и сообщается процессору что нужно бы обработать это дело и получить клавишу, которая нажата. Отсюда можно сделать вывод, что прерывания рождают внешние устройства. Но мы же с Вами использовали прерывание в программе. Конечно, кроме получения информации от устройства, этим устройствами нужно еще и управлять. Устройства медленные и помимо прочего еще нужно будет дождаться окончание выполнения операции. Это то же реализуется с помощью прерываний только вызываем их мы из программы. Итак, прерывания бывают двух типов:

Я еще как бы хочу акцентировать внимание на проблемах, которые были связанны с появлением прерываний. Устройств всяких много - клавиатура, монитор, дисковод и так далее. Если не пользоваться прерываниями, то постоянно операционная система должна опрашивать устройства, нажата ли клавиша, хотите ли вывести данные на монитор и так далее. Намного проще оговорить некоторый механизм который и будет обращаться внимание операционной системы и процессора на необходимость проведения некоторых действий. Итак, давайте посмотрим на все это в динамике. Ваша программа что то считает. В этот момент нажимается клавиша. Программа должны быть прервана. И это будет сделано, управление будет передано специальному коду (процедура обработки прерывания) а потом Ваша программа будет выполняться дальше. То же самое когда мы вызываем прерывание для вывода символов на монитор (int 21h 04Ch) то сами генерируем прерывание. Зачем ? В этот момент может происходить считывание с дисковода или вывод других символов на экран. А тут мы не с того не с сего со своими символами. Так как прерывания могут наступать одновременно, то есть приоритет их обработки. Есть прерывание, которые выполняться в любом случае даже если идет обработка другого прерывания. Процедура обработки прерывания это программа. Вопрос в том только где она храниться. Базовая обработка прерывания храниться в BIOS и в самих микросхемах оборудования. Но использовать их довольно тяжело. Представьте, для того , что бы записать файл нужно завести двигатель дисковода, установить головку, дать команду перейти в тот сектор прочитать таблицу файлов, проверить что там нет файла и так далее так далее. Все эти задачи облегчает операционная система, которая предоставляет Вам прерывания более высоко уровня. Используя эти прерывания, Вы можете одним заходом создать файл, например. Различают прерывания по номерам:

21h - прерывание DOS
13h - прерывание BIOS

Вот когда Вы вызываете прерывание (INT) Вы указываете еще и номер (21h) то есть, кто будет выполнять это действие.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 26.11.2001