Студопедия — ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ. Прерывание– это приостановление выполнения программы с целью выполнения какой-то более важной или нужной в данный момент другой программы или процедуры
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ. Прерывание– это приостановление выполнения программы с целью выполнения какой-то более важной или нужной в данный момент другой программы или процедуры






Прерывание – это приостановление выполнения программы с целью выполнения какой-то более важной или нужной в данный момент другой программы или процедуры, после завершения которой продолжается выполнение программы с того места, где она была прервана. Прерывание позволяет компьютеру приостановить любое свое действие и временно переключиться на другое, как заранее запланированное, так и неожиданное, вызванное непредсказуемой ситуацией в работе машины или ее компонента. Каждое прерывание вызывает загрузку определенной программы, предназначенной для обработки возникшей ситуации – программы обработки прерываний.

Команды прерывания позволяют воспользоваться встроенными системными ресурсами (программами обработки прерываний) из программы пользователя. Под системными ресурсами понимаются программы, входящие в главную исполнительную программу ЭВМ, которая называется BIOS – базовая система ввода-вывода. В функции этой системы входит: запоминание символов, набираемых на клавиатуре, изображение символов на экране дисплея, обмен данными между устройствами, присоединенными к ЭВМ: дисководами, принтером и т.п. Чтобы обратиться к этим возможностям ЭВМ, пользовательская программа должна быть прервана и должна быть выполнена системная функция, после чего пользовательская программа продолжается со следующей после обращения к системным функциям команды. Эти функциональные возможности и выполняют команды прерывания, которые описаны в таблице 6 [5].

Таблица 6

Формат команд прерывания

Мнемокод Формат
INT INT тип_прерывания
INTO INTO
IRET IRET

В команде прерывания INT тип_прерывания представляет собой номер прерывания, которых в ЭВМ IBM насчитывается 256 (типы прерываний имеют номера 0-255):

- тип 0 – возникает при делении на 0 или если частное от деления превышает разрядную сетку;

- тип 1 – действует в режиме “трассировки” (после выполнения каждой команды программы происходит останов);

- тип 2 – немаскируемые технические прерывания;

- тип 3 - прерывания по команде INT, включенной в программу (вызывает останов и отображение содержимого регистров микропроцессора);

- тип 4 – прерывание по команде INTO, включенной в программу (выполняется при условии, что при выполнении предыдущей команды произошло переполнение разрядной сетки);

- типы 8-15 – аппаратные прерывания, инициируемые внешними устройствами;

- типы 16- 31 – планируемые программные прерывания BIOS;

- типы 32-255 – программные прерывания DOS.

В некоторых типах прерываний BIOS и DOS имеется много разновидностей, иногда более 10. Так, прерывание 33 (21Н) имеет около 100 разновидностей (это прерывание наиболее часто используется в программах пользователя). В таких случаях вид прерывания (внутри типа) определяется содержимым регистра AH.

Каждому прерыванию в памяти ЭВМ соответствует вектор прерывания (эти вектора размещены в оперативной памяти, начиная с нулевого адреса). Каждый вектор прерывания размещается в 32-битовой ячейке памяти и представляет собой адрес, по которому размещена собственно программа прерывания. По сути такие программы очень похожи на процедуры, отличие в том, что программа прерывания заканчивается командой возврата IRET.

При выполнении команды INT микропроцессор производит следующие действия:

а) помещает в стек регистр флагов;

б) обнуляет флаг трассировки TF и флаг включения-выключения прерываний IF для блокировки других действий, кроме обработки вызванного прерывания;

в) помещает в стек значение регистра CS;

г) вычисляет адрес вектора прерываний, умножая номер_прерывания на 4 (т.к. вектор прерывания занимает 4 байта или 32 бита);

д) обращается ко второму слову из вычисленного адреса вектора прерываний и помещает его в регистр CS;

е) помещает в стек значение указателя команд IP;

ж) загружает в IP первое слово вектора прерываний.

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

Команда INTО представляет собой команду условного прерывания. Она инициирует прерывание в том случае, когда флаг переполнения OF равен 1. Следовательно, применять эту команду надо после арифметических операций, которые могут вызвать переполнение. Однако обрабатываться прерывание будет только при наличии переполнения, при отсутствии эта команда будет игнорироваться. Команда INTО вызывает команду обработки по вектору прерывания 4, для определения выполняемых командой действий необходимо обратиться к техническому руководству для конкретной ЭВМ. Выбор действий по обработке ситуаций переполнения возлагается на пользователя, поэтому без дополнительного уточнения по руководству конкретного компьютера пользоваться этой командой не рекомендую.

Команда IRET, как было уже сказано, является командой возврата после прерывания. Она извлекает из стека значения регистров CS и IP и регистра флагов (считывает три ячейки стека), а затем микропроцессор по новому содержанию регистров команд продолжит выполнение программы пользователя.

Наиболее распространенным в программах пользователя является использование прерывания 21H, которое предназначено для вызова функций DOS. В нижеприведенной таблице 7 [5] описываются только некоторые из видов этого прерывания.

Таблица 7

Наиболее часто используемые виды прерывания 21Н

Значе-ние АН Операция Дополнительные входные регистры Выходные регистры
  Ожидание набора символа на клавиатуре с последующим изображением его на экране Не используются (AL) = символ
  Вывод символа на экран (DL)= ASCII-код символа Не использу-ются
  Чтение символа с клавиатуры (DL)=0FFH (AL) = символ
A Чтение клавиатурной строки в буфер (DS: DX)= адрес буфера, первый байт = размер буфера Второй байт буфера = число про-читанных символов
  Изображение строки на экране дисплея (DS: DX)= адрес строки, которая должна заканчиваться символом $ Не используются

 

Приведем некоторые примеры использования команд прерывания.

В диалоговых программах пользователя нередко требуется дать ответ на приглашение к вводу или сделать выбор из меню, нажав букву или цифру. Предположим, что в программе требуется дать ответ Д или Н на вопрос о продолжении или прекращении программы. Ввод Д заставляет программу перейти к группе команд, помеченных как YES, а Н – к командам с меткой NO. При ошибочном нажатии какай либо другой клавиши программа возвращается на ввод символа до тех пор, пока не будет нажата либо Д, либо Н.







Дата добавления: 2014-11-10; просмотров: 625. Нарушение авторских прав; Мы поможем в написании вашей работы!



Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Деятельность сестер милосердия общин Красного Креста ярко проявилась в период Тритоны – интервалы, в которых содержится три тона. К тритонам относятся увеличенная кварта (ув.4) и уменьшенная квинта (ум.5). Их можно построить на ступенях натурального и гармонического мажора и минора.  ...

Понятие о синдроме нарушения бронхиальной проходимости и его клинические проявления Синдром нарушения бронхиальной проходимости (бронхообструктивный синдром) – это патологическое состояние...

Опухоли яичников в детском и подростковом возрасте Опухоли яичников занимают первое место в структуре опухолей половой системы у девочек и встречаются в возрасте 10 – 16 лет и в период полового созревания...

Разработка товарной и ценовой стратегии фирмы на российском рынке хлебопродуктов В начале 1994 г. английская фирма МОНО совместно с бельгийской ПЮРАТОС приняла решение о начале совместного проекта на российском рынке. Эти фирмы ведут деятельность в сопредельных сферах производства хлебопродуктов. МОНО – крупнейший в Великобритании...

ОПРЕДЕЛЕНИЕ ЦЕНТРА ТЯЖЕСТИ ПЛОСКОЙ ФИГУРЫ Сила, с которой тело притягивается к Земле, называется силой тяжести...

СПИД: морально-этические проблемы Среди тысяч заболеваний совершенно особое, даже исключительное, место занимает ВИЧ-инфекция...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия