Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Программное прерывание реализует один из способов перехода на подпрограмму с помощью специальной инструкции процессора, например, INT в процессорах Intel Pentium. При выполнении команды программного прерывания процессор отрабатывает ту же последовательность действий, но только происходит это в предсказуемой точке программы – там, где программист поместил данную команду [2].
Практически все современные процессоры имеют в своей системе команд инструкции программных прерываний. Одной из причин их появления является то, что их использование часто приводит к более компактному коду программ по сравнению с использованием стандартных команд выполнения процедур. Это объясняется тем, что разработчики процессора обычно резервируют для обработки прерываний небольшое число возможных подпрограмм. Поэтому длина операнда в команде программного прерывания, который указывает на нужную подпрограмму, меньше, чем в команде CALL перехода на эту подпрограмму. Например, в процессоре x86 предусмотрена возможность применения 256 программ обработки прерываний, поэтому в инструкции INT операнд имеет длину в 1 байт. Значение операнда команды INT просто является индексом в таблице из 256 адресов подпрограмм обработки прерываний, один из которых и используется для перехода по команде INT. А при использовании команды CALL потребовался бы уже код длиной в 2 или 4 байта. Другой причиной применения программных прерываний вместо обычных инструкций вызова подпрограмм является возможность смены пользовательского режима на привилегированный одновременно с вызовом процедуры [2].
В результате программные прерывания часто используются для выполнения ограниченного числа вызовов функций ядра ОС – системных вызовов.
Дата публикования: 2015-10-09; Прочитано: 398 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!