Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Ввод-вывод по прерыванияю



В общем случае прерывания могут вызываться

В этом разделе будут рассмотрены внешние прерывания. Работу МП можно разделить во времени между двумя независимыми программами: фоновой, которая выполняет основную задачу и программой ВВ данных. Когда ВУ подготовит данные для передачи, оно посылает сигнал запроса на прерывание непосредственно на вход МП INTR или в специальное устройство - контроллер прерываний. В процессе обслуживания прерывания выполняются следующие действия:

1. ВУ самостоятельно, либо через контроллер прерываний посылает сигнал прерывания INT(R) на одноименный вход МП;

2. МП завершает выполнение текущей команды и,если преывания разрешены командой ассемблера STI(EI для 8085), то подтверждает разрешение сигналом ШУ -INTA;

3. В МП по ШД передается тип(номер) прерывания - N;

4. Содержимое PSW, а также CS,IP (адрес возврата), скорректированное с учетом сброса очереди помещается в стек;

5. Сбрасываются флаги IF (флаг разрешения прерываний) и TF (флаг трассировки), причем т.к. (IF) = 0 дальнейшие прерывания запрещаются;

6. В IP загружается содержимое двух байтов с начальным адресом 4*N, а в CS - содержимое следующих двух байтов. Эти 4 байта называются вектором (указателем) прерывания.

7. Начинает выполняться подпрограмма - обработчик прерывания.

INT_SUBR: STI PUSH AX....; здесь....; команды MOV AL,5; обработчика....; прерывания.... POP AX IRET

Если допускаются вложенные прерывания, то вначале помещается команда STI- разрешение преываний, запрещенных в п.5. Инструкции push и pop сохраняют и восстанавливают содержимое регистров фоновой задачи, если эти же регистры используются и обработчиком прерывания (в примере регистр AX).

8. Команда IRET извлекает из стека адрес возврата - IP,CS и содержимое PSW;

9. МП прдолжает работу с адреса возврата. При выполнении программных прерываний по команде INT N действия выполняются с п.3. N находится в пределах 0 <= N <= 255, поэтому четырехбайтовые вектора прерываний занимают первые 1024 байта памяти.





Дата публикования: 2015-01-23; Прочитано: 169 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...