Команда RETI
Команда "возврат из прерывания" выгружает старший и младший байты счетчика команд из стека и устанавливает "логику прерываний", разрешая прием других прерываний с уровнем приоритета, равным уровню приоритета только что обработанного прерывания. Указатель стека уменьшается на 2. Слово состояния программы (PSW) не восстанавливается автоматически. Выполнение основной программы продолжается с команды, следующей за командой, на которой произошел переход к обнаружению запроса на прерывание. Если при выполнении команды RETI обраружено прерывание с таким же или меньшим уровнем приоьритета, то одна команда основной программы успевает выполниться до обработки такого прерывания.
Ассемблер: |
RETI |
Код: |
|
Время: |
2 циклa |
Алгоритм: |
(PC)[15-8]:=((SP)),
(SP):=(SP)-1,
(PC)[7-0]:=((SP)),
(SP):-(SP)-1 |
Пример: |
;(SP)=0BH, (ОЗУ[0A])=2AH, (ОЗУ[0B])=03H,
;(PC)=УУУУH, где У=0-FH
RETI ;(SP)=09H, (PC)=032AH
|
|