Страница
10
Рис. 1.24. Структурная схема организации прерываний
![]() |
Рис. 1.25. Регистр запросов прерывания IRQ
![]() |
Рис. 1.26. Регистр маски прерываний IMR
Регистр приоритета прерываний IPR (рис.1.27) позволяет устанавливать любое соотношение приоритетов как между группами прерываний А, В, С, так и между отдельными запросами прерываний внутри группы. В каждую группу включено по два запроса.
![]() |
Рис. 1.27. Регистр приоритетов прерываний IMR
В случае векторного процесса каждый уровень прерывания имеет собственный вектор —адрес подпрограммы обслуживания этого уровня прерывания. Векторы прерываний размещены в начальной зоне ПЗУ (см. рис. 1.3). Инициализация процесса векторного прерывания происходит, если прерывания глобально разрешены и есть хотя бы один незамаскированный запрос прерывания. Если таких запросов несколько, то выбирается вектор прерывания с наивысшим приоритетом. Далее реализуется следующая последовательность действий:
— загружается в стек младший байт PC;
— загружается в стек старший байт PC;
—загружается в стек регистр флагов FLAGS;
— читается старший байт вектора;
— читается младший байт вектора;
—вектор загружается в PC.
Эта последовательность занимает 24 такта синхронизации TpC. Наихудшее время реакции на прерывание можно вычислить, прибавив к этому времени 2TpC для синхронизации внешнего запроса прерывания и время выполнения самой длинной команды в прерываемой программе.
1.3. Система команд микроконтроллеров Z8
Математические возможности МК характеризуются системой команд. В МК использован двухадресный принцип построения команд, что позволяет сократить количество требуемых пересылок операндов. Первый операнд после выполнения команды становится результатом и называется операндом-получателем ( Destination Operand ), а второй —сохраняет свое значение и называется операндом-источником ( Source Operand ). Первый в описании системы команд обозначен аббревиатурой dst, а второй —src.
Код любой команды МК содержит код операции (КОП), определяющий операцию команды, и до двух адресных полей. Способы трактовки кодов в адресном поле называются способами адресации операндов.Прежде чем рассматривать набор команд, необходимо более подробно рассмотреть используемые способы адресации операндов.
1.3.1. Способы адресации операндов
В МК Z8 использовано шесть основных способов адресации операндов :
— регистровая ( Register );
— косвенная регистровая ( Indirect Register );
— индексная ( Indexed );
— прямая ( Direct );
— относительная ( Relative );
— непосредственная ( Immediate ).
Кроме того, регистровая и косвенная регистровая адресации имеют ряд модификаций: они могут использовать сокращенный 4-битный адрес рабочего регистра, полный 8-битный адрес регистра, сокращенный 4-битный адрес рабочей пары регистров, полный 8-битный адрес регистровой пары. При адресации пар регистров используется четное выравнивание, т.е. допустимые адреса —четные числа. Шестнадцатибитные операнды занимают в регистровом файле пару регистров, причем по четному адресу размещается старший байт.
Все способы адресации операндов в системе команд МК Z8 приведены в табл.1.7. В таблице указаны условные обозначения способов адресации, используемые в дальнейшем в таблице команд, наименование способа адресации, обозначение операнда на языке ассемблера, диапазон значений адреса и номер рисунка, на котором дана графическая интерпретация способа адресации.
Следует отметить, что адреса типа R, RR, IR, IRR предполагают использование как полного 8-битного адреса регистра, так и сокращенного 4-битного. В последнем случае адрес размещается в младшей тетраде адресного байта, а в старшей тетраде указывается код 1110B (EH) :
E |
Dst/src |
Поэтому обращение к регистрам рабочей группы E СРФ возможно только с помощью рабочей регистровой адресации (см. п.п.1.2.2.1).
Таблица 1.7. Способы адресации операндов
Способ |
Наименование |
Операнд |
Диапазон |
Рис. |
r |
Рабочая регистровая(РР) |
Rn |
n=0, .,15 |
1.35 |
R |
Регистровая или РР |
Reg Rn |
00H —FFH n=0, .,15 |
1.36 1.35 |
RR |
Регистровая пара или PP пара (четное выравнивание) |
Reg RRp |
00H —FEH p=0, .,14 |
1.38 1.37 |
Ir |
Косвенная РР |
@Rn |
n=0, .,15 |
1.39 |
IR |
Косвенная регистровая или косвенная РР |
@Reg @Rn |
00H —FFH n=0, .,15 |
1.40 1.39 |
Irr |
Косвенная через РР пару |
@RRp |
p=0, .,14 |
1.41 |
IRR |
Косвенная через регистровую пару или РР пару |
@Reg @RRp |
00H —FEH p=0, .,14 |
1.42 1.41 |
X |
Индексная |
Reg(Rn) |
00H —FFH |
1.43 |
DA |
Прямая |
Addrs |
0H —FFFFH |
1.44 |
RA |
Относительная |
Addr |
-128- +127 |
1.45 |
IM |
Непосредственная |
#Data |
00H —FFH |
1.46 |