домашняя библиотека
Поиск в библиотеке
Навигация по предметам
Последние добавленные новости
Реклама
Тут есть plantronics voyager pro в г волжский.

Архитектура и организация ЭВММикропроцессор Z80

Индексные регистры

Два 16-разрядных индексных регистра IX и IY используются в некоторых инструкциях для адресации операндов в памяти. Адрес ячейки памяти вычисляется путём сложения содержимого индексного регистра с 8-разрядной константой d, являющейся частью кода команды. Первоначальное содержимое индексного регистра при этом не изменяется.

Счётчик команд

16-разрядный счётчик команд PC содержит адрес следующей команды, подлежащей выполнению. Когда очередная команда выбрана из памяти, его значение увеличивается на длину кода команды. При выполнении инструкций переходов содержимое счётчика команд замещается на адрес перехода; при выполнении команды вызова подпрограммы или при прерывании текущее содержимое PC сохраняется в стеке.

Указатель стека

16-разрядный регистр указателя стека SP содержит адрес текущей вершины стека. Как и в большинстве современных вычислительных систем, стек микропроцессора Z80 растёт вниз. При записи в стек содержимое SP уменьшается, и по полученному адресу выполняется запись. При выборке из стека после чтения данных содержимое SP увеличивается.

Информация заносится в стек и извлекается из него всегда порциями по два байта. Это, однако, не накладывает каких-либо ограничений на содержимое регистра SP.

Прочие регистры

8-разрядный регистр адреса регенерации R хранит адрес очередной строки динамической памяти, которая подлежит регенерации. Очередной цикл регенерации выполняется сразу после выборки первого (или единственного) байта кода операции, благодаря чему регенерация динамического ОЗУ совмещена по времени с обработкой информации в процессоре и не приводит к лишним потерям времени на ожидание её завершения. После выполнения очередного цикла содержимое младших семи разрядов регистра R автоматически увеличивается на единицу. Значение старшего разряда не изменяется.

Хотя к регистру R возможен доступ с помощью инструкций пересылки данных, особой пользы для программиста от него нет, хотя можно пытаться использовать его в качестве счётчика выполненных инструкций (поскольку цикл регенерации выполняется сразу за выборкой кода операции) и для генерации случайных чисел.

Ценность встроенного счётчика регенерации снижается из-за того, что он формирует 7-, а не 8-разрядный адрес строки ОЗУ, подлежащей регенерации. Когда микропроцессор Z80 создавался, этот недостаток не играл существенной роли, поскольку самыми распространёнными микросхемами динамической памяти были кристаллы ёмкостью 128×128 разрядов (16 Кбит), для регенерации которых требовались 7-разрядные адреса. Позднее появились кристаллы с организацией 256×256 разрядов (64 Кбита); для их регенерации требовались уже 8-разрядные адреса

8-разрядный регистр адреса таблицы прерываний I используется в “родном” (втором) режиме обработки прерываний микропроцессора Z80. В нём содержится старший байт адреса таблицы, в которой хранятся указатели обработчиков прерываний. Младший байт, называемый вектором прерывания и определяющий, в каком из элементов этой таблицы хранится указатель нужного обработчика, выдаётся устройством, запросившим прерывание.

В нулевом и первом режимах обработки прерываний регистр I не используется.

Система прерываний

Микропроцессор Z80 обслуживает два класса прерываний: немаскируемые и маскируемые (8080 имел единственный класс прерываний – маскируемые).

Флаги управления прерываниями

В микропроцессоре имеются две пары флагов (IFF1, IFF2 и IMFa, IMFb), управляющих системой прерываний.

Флаг IFF1, когда установлен, разрешает маскируемые прерывания, а когда сброшен – запрещает их. Он сбрасывается при сбросе процессора, при возникновении немаскируемого прерывания и при выполнении инструкции запрещения прерываний DI, а устанавливается при выполнении инструкции разрешения прерываний EI. Кроме того, при выполнении инструкции возврата из немаскируемого прерывания RETN в него заносится состояние флага IFF2.

Когда происходит немаскируемое прерывание, состояние флага IFF1 копируется во флаг IFF2, а когда выполняется инструкция возврата из немаскируемого прерывания RETN, выполняется обратное копирование. Флаг IFF2 сбрасывается сбросом процессора и выполнением инструкции DI, а устанавливается инструкцией EI. При выполнении инструкций LD A,I и LD A,R его состояние заносится во флаг чётности P/V регистра флагов F.

Флаги IMFa и IMFb совместно определяют режим обработки маскируемых прерываний. Комбинации их состояний имеют следующий смысл:

– 00 – режим совместимости с процессором 8080 (режим 0);

– 01 – не используется;

– 10 – режим единственного вектора (режим 1);

– 11 – режим векторов, предоставляемых устройствами (режим 2).

   
 
  • Добавлен: 17-08-2010, 08:19 | Просмотров: 13620

    support: admin@sdb.su