MS-DOS для программиста
© Александр Фролов, Григорий Фролов
Том 4, М.: Диалог-МИФИ, 1993, 254 стр.
Часто при выполнении критических участков
программ приходится запрещать прерывания для
того чтобы гарантировать непрерываемое
выполнение определенной последовательности
команд. Это можно сделать командой CLI. Ее нужно
поместить в начало критической
последовательности команд, а в конце расположить
команду STI, разрешающую процессору воспринимать
прерывания. Команда CLI запрещает только
маскируемые прерывания, на обработку
немаскируемого прерывания эта команда никакого
влияния не оказывает.
Если вы используете запрет прерываний с
помощью команды CLI, следите за тем, чтобы
прерывания не отключались на длительный период
времени, так как это может привести к
нежелательным последствиям. Например, к
отставанию системных часов или неправильной
работе периферийных устройств компьютера.
Если вам надо запретить не все прерывания, а
только некоторые, например, от клавиатуры, то для
этого надо воспользоваться услугами контроллера
прерываний. Записывая в этот контроллер
определенную управляющую информацию, можно
замаскировать прерывания от отдельных
устройств.
|