Читайте также:
|
|
Процедура прерывания отличается от обычной процедуры способом выхода из процедуры. Для выхода из процедуры прерывания служит команда IRЕТ. Команда IRЕТ аналогична команды RET за исключением того, что она инкрементирует содержимое регистра SP (регистра указателя стека) на 4 лишние байта и восстанавливает сохраненные флаги и регистр FLAGS.
Схема обработки прерывания:
1 - в стеке сохраняется адрес текущей команды.
2-регистр флагов сохраняется в стеке,
3- флаг отладки сбрасывается.
4- запрещаются прерывания,
5- процессор извлекает из таблицы векторов прерываний IP=(N*4] и СS=[N*4+2],
6-команда IRET
Особенности:
1) процедура прерывания должна отработать быстро, иначе не во время обработаются
другие прерывания, что может привести к неправильной работе программ и устройств (например перехватив прерывание таймера и выполняя медленную процедуру)
2) процедура прерывания должна следить чтоб не было повторных вхождений (т.е. отключить прерывания в начале выполнения процедуры)
3) если нужно, то процедура прерывания должна передавать управление после себя старому обработчику прерывания.
INT 13H дисковые операции ввода-вывода – обеспечивает операции ввода-вывода для дискет и винчестера.
INT 14H управление коммуникационным адаптером - Обеспечивает последовательный ввод-вывод через коммуникационный порт RS232. Четыре типа операции, определяемые регистром АН выполняют прием и передачу символов и возвращают в регистре АХ байт состояния коммуникационного порта.
INT 16Н Ввод с клавиатуры.
INT 17Н Вывод на принтер - Обеспечивает вывод данных на печатающее устройство
Преревания DOS. располагаются в модуле IO.SYS и загружаются в память при загрузке DOSa (прерывания BIOS расположены в ПЗУ). Так как прерывания DOS обеспечивают большое количество разных дополнительных проверок, поэтому они проще в использовании и менее машинно-зависимы, чем их BIOS аналогии.
Прерывания DOS:
INT 20h завершение программы – завершает выполнение программы и передает управление в DOS.
INT 21h запрос функций DOS - основная операция DOS? Вызывающая определенную функцию в соответствии с кодом в регистре АН.
INT 27h завершение проги оставляющее её резидентной. Позволяет сохранить программу в памяти(резидентная прога)
Ниже приведены базовые функции для прерывания DOS INT 21h. Код функции устанавливается в регистре АН: 00 завершение проги (аналогично INT 20h);01 Ввод символа с клавиатуры с эхом на экран; 03 Ввод символа из асинх. коммуникационного канала; 04 Вывод символа на асинхронный коммуникационный канал.
Дата добавления: 2014-12-19; просмотров: 170 | Поможем написать вашу работу | Нарушение авторских прав |