Управление прерываниями

а) Разрешение прерывания

EI INTE 1 <B1> FB

7 0

б) Блокировка прерываний

DI INTE 0 <B1> F3

7 0

Команды этой группы позволяют программно защитить от прерываний некоторые участки программы. С помощью этих команд производится установка (а) или сброс (б) триггера прерываний INTE МП. Если прерывания запрещены, то МП не будет реагировать на сигналы запроса прерываний до тех пор, пока программно этот запрет не будет снят с помощью команды EI. Если прерывания разрешены, то с приходом сигнала запроса на прерывание триггер INTE автоматически сбросится при переходе к прерывающей программе и установить его можно лишь командой EI. Это делает­ся обычно на том этапе выполнения подпрограммы обслуживания прерывания, когда уже могут быть разрешены другие прерывания.

Каждая команда выполняется за один машинный цикл (4 такта). Значения триггеров признаков при этом не изменяются.

Двоично-десятичная коррекция

DAA <B1>

7 0

С помощью этой команды производится коррекция содержимого аккумулятора, которое получено в результате арифметического сложения двоично-десятичных чисел на предыдущем шаге выполнения программы. Коррекция заключается в прибавлении числа 0110 В к каждой дво­ичной тетраде 8-разрядного числа, записанного в аккумулятор, и производится в том случае, если число в тетраде не меньше 10, или имел место перенос из этой тетрады, или число в старшей тет­раде равно 9 и был перенос из младшей тетрады (полуперенос).

Команда выполняется за один цикл (4 такта). Признаки прини­мают значения в соответствие с полученным после коррекции ре­зультатом.

 

Пример:

0800) ADD B

DAA

 

 

Пустая операция

NOP <B1>

7 0

Эта команда ничего не изменяет, кроме того, что содержимое программного счетчика увеличивается на единицу. Команда выполня­ется за один цикл (4 такта) и используется для организации временных задержек в программе, а также резервирования места, чтобы можно было вносить изменения в отдельные участки программы без изменения адресов остальных команд.

 

Останов

HLT <B1>

7 0

Эта команда вызывает прекращение выполнения программы и переводит МП в состояние останова. При этом ША и ШД переводятся в высокоимпедансное состояние, а на линии ожидания (WAIT) устанавливается высокий уровень. В этом состоянии МП может находиться в течение любого временного интервала. Из состояния останова МП можно вывести двумя способами:

- подачей сигнала сброса на вход RESEТ, при котором выполнение программы начинается с адреса 0000 H;

-подачей сигнала на вход прерывания INT . При этом триггер разрешения прерывания должен быть установлен; в против­ном случае при INTE=0 единственным способом запуска оказы­вается сигнал RESET.

 

Контрольные вопросы и задания

 

1. Перечислите команды управления, позволяющие изменять состояние отдельных флагов.

2. Какую команду нежелательно помещать в конце программы?

3. Как можно разрешать и запрещать аппаратные прерывания?

4. Как выполняется команда рестарта?

5. Для чего используется команда NOP?

6. Для чего предназначена команда DAA?

7. Какие команды управления из перечисленных ниже не изменяют состояние флагового регистра?

- STC,

- NOP,

- ET,

- RST1,

- DAA.

8. Рассмотрите выполнение следующей программы:

0803) ADD 74

DAA

При: (A)=39, (Fl)=02.








Дата добавления: 2016-05-11; просмотров: 1183;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.011 сек.