Микропроцессор Z80



Регистры общего назначения - часть 2


Правда, арифметико-логические операции возможны и над операндами, адреса которых хранятся в индексных регистрах, но коды этих команд занимают 3 байта памяти вместо одного, а для их выполнения требуется 19 тактов вместо семи.

Адрес в регистровой паре BC может применяться в командах пересылки 8-разрядных операндов, а также в операциях ввода-вывода. Кроме того, содержимое регистровой пары BC используется в качестве счётчика в инструкциях обработки блоков данных. Адрес в регистровой паре DE используется в командах пересылки 8-разрядных операндов и обработки блоков данных.

Регистр флагов F состоит из нескольких отдельных разрядов, имеющих самостоятельное значение. Он имеет следующий формат:

----T---T---T---T---T---T---T---¬

¦ S ¦ Z ¦   ¦ H ¦   ¦P/V¦ N ¦ C ¦

L---+---+---+---+---+---+---+----

7                           0

Назначение разрядов регистра флагов следующее.

S (разряд 7) – флаг знака. Принимает значение 1, если старший (знаковый) разряд результата операции равен единице.

Z (разряд 6) – флаг нуля. Устанавливается, когда при выполнении операции был получен нулевой результат.

Разряд 5 не используется.

H (разряд 4) – флаг вспомогательного переноса. Устанавливается, когда операция сложения или вычитания вызывает соответственно перенос из 3-го разряда в 4-й или заём из 4-го разряда в 3-й. Используется при выполнении операций десятичной коррекции инструкцией DAA.

Разряд 3 не используется.

P/V (разряд 2) – этот флаг в зависимости от операции является либо признаком переполнения (V), либо признаком чётного результата (P). В первом случае он устанавливается, если при выполнении операции произошло переполнение, и сбрасывается при отсутствии такового. Во втором случае он устанавливается, если в результате присутствует чётное число единичных разрядов, и сбрасывается, если единиц нечётное число.

N (разряд 1) – флаг операции вычитания. Устанавливается, если предыдущая операция была операцией вычитания, и сбрасывается в противном случае. Используется инструкцией DAA при выполнении десятичной коррекции результата.

C (разряд 0) устанавливается, если при выполнении операции сложения произошёл перенос из старшего разряда или если при выполнении операции вычитания произошёл заём в старший разряд. В инструкциях сдвига во флажок переноса заносится значение выдвигаемого разряда.

При выполнении некоторых инструкций те или иные флаги регистра F устанавливаются или сбрасываются по особым правилам. Сведения об имеющихся особенностях приводятся в описании системы команд.




Содержание  Назад  Вперед