Пример |
Бит общего разрешения прерываний (GIE) в регистре статуса устанавливается.
; Подпрограмма обработки прерывания портов с P1.2 по P1.7
; P1IN – это адрес регистра, в котором читаются все биты порта.
; P1IFG – это адрес регистра, в котором фиксируются все события, вызывающие прерывания
;
PUSH.B &P1IN
BIC.B @SP,&P1IFG ; сброс только принятых флагов
EINT ; Предварительно установленные флаги прерывания
; порта 0 сохранены на стеке, поэтому
; допустимы другие прерывания
BIT #Mask,@SP
JEQ MaskOK ; переход, если флаги идентичны представленной
; маске
…
MaskOK BIC #Mask,@SP
…
INCD SP ; Вспомогательное действие, обратное команде
; PUSH, использованной в начале процедуры
; обработки прерывания. Корректирует указатель
; стека для правильного выхода из процедуры
; обработки прерывания
RETI
Примечание: разрешение прерываний
Команда, следующая за командой разрешения прерываний (EINT), выполняется всегда, даже когда ранее поступивший запрос на обслуживание прерывания ожидает, когда прерывания будут разрешены.
|