Комплект КР580. Основные технические характеристики микропроцессора КР580. Система команд микропроцессора, страница 6

5.3. Режим «захват». Этот режим используется для останова управления со стороны МП, при этом выходные магистрали мп переводятся в высокие состояния и отключаются от внешней магистрали, обеспечивая тем самым возможность обмена информацией с внешней средой по каналу ДБ. Режим «захват» инициализируется подачей сигнала «1» на вход HOLD. Подтверждение – путем выдачи сигнала «1» на выходе HLDA. Состояние «захват» будет длиться целое число тактов. Установка низкого уровня на входе HOLD проверяется при каждом сигнале C2, и при его наличии на следующем импульсе режим «захват» будет прекращен и мп перейдет к выполнению очередного машинного цикла, начиная с такта T1.

5.4. Режим “останов”. Этот режим является результатом выполнения команды HALT. Находясь в этом режиме, магистрали МП не отключаются от внешних магистралей, а процессор просто отмечает время, в течение которого он “стоит”. Состояние системы в этом случае аналогично состоянию “ожидание”, но устанавливается оно программно. Обычно режим “останов” заканчивается тогда, когда ВУ дают запрос на обслуживание – подача запроса (уровня 1) на прерывание на вход INT. Если сигналы прерывания не воспринимаются МП, например, в связи с подачей команды DI, то остается один выход из состояния “останов” – подача сигнала начальной установки на вход RESET. Особенность режима “останов” заключается в том, что в этом состоянии МП может входить в состояние захват и выходить из него. В режиме “останов” запрос на прерывание не будет удовлетворяться, если запрос на прерывание был уже подан на вход INT, но не было еще подтверждено его обслуживание (т.е. не установлен уровень 1 на выходе INT A). После подтверждения получения запроса на прерывание система может войти в состояние “захват”.

5.5. Организация прерываний.

ВУ подают сигналы запроса на прерывание асинхронно по отношению к работе МП путем подачи уровня 1 на вход регистра запроса на прерывание. Запрос может быть удовлетворен только в том случае, если МП находится в состоянии разрешения восприятия запросов на прерывание. МП автоматически устанавливается в состояние запрета восприятия запросов на прерывание после выполнения начальной установки, а также после начала запроса обслуживания на прерывание.

Управление состоянием восприятия запросов на прерывание может осуществляться программно, с помощью команд EI и DI. МП указывает на возможность восприятия запросов прерывания (INTE). Если на этом выходе уровень 1, то запросы на прерывание будут восприняты, если уровень 0, то запросы восприниматься не будут. Если запрос на прерывание воспринят, то начинается цикл его обслуживания. В первом машинном цикле обслуживания запроса на прерывание МП получает по МД код прерывания. Существуют два способа задания кода прерывания: с помощью команды RST VECT и с помощью команды CALL ADR. Первый цикл для обоих способов является общим и отличается от цикла М1 извлечения кода команды из памяти тем, что содержание программного счетчика при этом увеличивается. На первом такте уровень 0 на выходе регистра запросов на прерывание. МП информирует ВУ о восприятии и начале обслуживания запросов на прерывание выдачей слова состояния 00100011. Разряд D0 совместно с сигналом на выходе DBIN, используется для формирования сигнала запроса обслуживания на прерывания магистрали управления.

 


8

 


Код команды

 


RST1

 


По этому сигналу ВУ выдают на внешнюю МД либо код команды RST VECT, либо код команды CALL ADR.

Существует 8 кодов команды RST VECT. Эта команда указывает начальный адрес программы обслуживания прерывания. Получив команду на первом машинном цикле, МП на циклах М2 и М3 записывает в область памяти, отведенной под стек, текущее значение ПС2. Сохранение содержимого ПС2 в стеке необходимо для возврата к прерванной программе после окончания выполнения подпрограммы. Возврат можно осуществить с помощью команды RET, по которой загружается содержание двух верхних ячеек стека в ПС2. Таким образом, каждая подпрограмма обслуживания прерываний должна иметь в конце программы команду RET. Первым машинным циклом при обращении к ячейкам памяти, указанным в команде RST VECT, является цикл М1 извлечения команды.