page8
Блок
главных регистров
Блок
вспомогательных регистров
Аккумулятор
A
(8)
Флаги
F
(8)
Аккумулятор
A´
(8)
Флаги
F´
(8)
B
(8/16)
C
(8)
B´
(8/16)
C´
(8)
D
(8/16)
E
(8)
D´
(8/16)
E´
(8)
H
(8/16)
L
(8)
H´
(8/16)
L´
(8)
Регистры
общего
назначения
Вектор прерывания
I
(8)
Регенерация памяти
R
(8)
Индексный регистр
IX
(16)
Индексный регистр
IY
(16)
Указатель стека
SP
(16)
Счётчик команд
PC
(16)
Специальные
регистры
Рис. 2.2. Регистры ЦП Z80
Специальные регистры
PC
Program Counter - Счётчик команд
Счётчик команд является программно доступным регистром, и используемся для
приёма, преобразования и выдачи на шину адреса текущего 16-разрядного адреса команды.
Содержимое счётчика команд автоматически инкрементируется после выборки каждого
байта команды. В случаи перехода в программе, новый адрес автоматически заносится в
счетчик команд.
SP
Btack Pointer - Указатель стека
Указатель содержит 16-разрядный адрес ячейки стека, к которой было последнее
обращение
Содержимое
SP
декрементируется,
когда
данные
загружаются
в
стек
и
инкрементируется при чтении. Стек организуется во внешнем ОЗУ по принципу LIFO (Last
In - First Out). Обмен данными между стеком и ЦП может быть автоматическим (как в
случае обработки подпрограмм), либо командами PUSH и POP. Стек позволяет простую
реализацию
многоуровневых
прерываний,
практически
неограниченное
вложение
подпрограмм и упрощение при многих видах обработки данных.
IX, IY Indexregisters - Индексные регистры
Каждый из этик двух регистров может содержать 16-разрядный базовый адрес,
используемый
при
индексной
адресации.
Базовый
адрес
складывается
со
смещением,
которое указано в команде в дополнительном коде. Их сумма образует действительный
адрес ячейки памяти, содержащей данные. Этот вид адресации удобен при обработке
таблиц и массивов.
I
Interruptveotor register - Регистр вектора прерывания
Это
8-разрядный
программно
доступный
регистр,
используемый
в
режиме
прерывания
2
(IM2)
Он
содержит
старший
байт
вектора
прерывания.
Младший
байт
принимается от внешнего устройства. Путём их объединения формируется полный вектор
прерывание. (Подробнее см. гл. 6).
R
Refreshregister - Регистр регенерации памяти
Это 8-разрядный
программно доступный регистр, обеспечивавший возможность
использования
динамических
ОЗУ
без
внешних
схем
регенерации.
Содержимое
его
младших 7 разрядов автоматически увеличивается на единицу после каждой выборки
команды. При этом восьмой бит сохраняет значение, полученное при выполнении команды
загрузки этого регистра. Т.о. формируется адрес регенерации, который подается в младшую
часть адресной шины во время декодирования и выполнения команды в ЦП (в старшую
часть - содержимое регистра I). Регенерация данного вида называется "прозрачной" и не
снижает быстродействия процессора.