page9
Главный и вспомогательный блоки регистров
ЦП Z80 содержит два альтернативных блока регистров: главный (A-L) и вспомогательный
(A'-L'). С точки зрения программиста оба блока абсолютно равноправны, но в данный момент
можно работать лишь с одним из них. Переключение этих блоков производится командами ЕХХ и
EX
AF.AF'.
Такая
организация
удобна
тем,
что
позволяет
быстро
сохранить
содержимое
регистровых
блоков
при
вызове
подпрограмм
или
при
возникновении
прерывания.
Однако
следует
помнить:
отсутствует
средство
подтверждения,
какой
из
блоков
(главный
или
вспомогательный) используется в данный момент.
A,A'
Accumulator - Аккумулятор
Каждый из двух блоков регистров содержит по одному 8-разрядному аккумулятору.
При арифметических и логических операциях он служит источником одного из операндов
и, как правило, приёмником результата. Второй операнд берётся из другого регистра, либо
из памяти.
Диапазон представления целых чисел без знака в аккумуляторе от 0 до 255, со
знаком от -128 до +127.
F,F'
Flagregister - Флаговый регистр
В составе каждого блока регистров имеется свой флаговый регистр. Флаговый регистр
(называемый
также
регистром
условий)
содержит
набор
одноразрядных
признаков,
которые
устанавливаются по результату операции. Флаговые биты 7, 6, 2, 0 служат для реализации
условных переходов и условных вызовов подпрограмм или возвратов; биты 4 и 1 служат для
реализации двоично-десятичной арифметики.
Рис. 2.3. Регистр флагов
Флаги устанавливаются в следующих условиях:
S=1, если результат операции отрицателен.
Z=1, если результат операции равен нулю.
Н=1, если при арифметической операции был перенос между битами 3 и 4.
P/V=1, а). если при логических операциях и командах сдвига количество установленных в
единицу
битов
чётно
(функция
четности
P);
б).
если
результат
арифметической
операции
находится вне диапазона представления чисел со знаком, т.е. меньше -128, либо больше +127
(функция переполнения V).
N=1, если в предыдущей команде выполнялось вычитание (команды типа SUB, DEC, CMP).
C=1, если при сложении возникает перенос из 7 бита аккумулятора, либо при вычитании -
заём. В командах сдвига состояние флага C однозначно соответствует сдвигаемому в него биту.
В,
С,
D,
E,
H,
L
Регистры общего назначения (РОН)
B',
C',
D',
E',
H',
L'
Могут быть использованы как накопители данных или указатели адресов операндов. РОНы
могут
использоваться
как
самостоятельные
8-разрядные
регистры,
либо
как
16-разрядные
попарно: ВС, DE, HL и ВС', DE', HL'.