Микропроцессор Z80 -основные характеристики

         

Операции обработки блоков данных


LDI                         LDIR

---------¬ ---------¬       ---------¬ ---------¬

¦11101101¦ ¦10100000¦       ¦11101101¦ ¦10110000¦

L--------- L---------       L--------- L---------

LDD                         LDDR

---------¬ ---------¬       ---------¬ ---------¬

¦11101101¦ ¦10101000¦       ¦11101101¦ ¦10111000¦

L--------- L---------       L--------- L---------

CPI                         CPIR

---------¬ ---------¬       ---------¬ ---------¬

¦11101101¦ ¦10100001¦       ¦11101101¦ ¦10110001¦

L--------- L---------       L--------- L---------

CPD                         CPDR

---------¬ ---------¬       ---------¬ ---------¬

¦11101101¦ ¦10101001¦       ¦11101101¦ ¦10111001¦

L--------- L---------       L--------- L---------

Инструкции этой группы предназначены для обработки блоков данных переменной длины, располагающихся в памяти.

В регистровой паре DE располагается адрес одного из операндов, в регистровой паре HL – второго операнда. Если операнд переменной длины один (в командах сравнения CPI, CPIR, CPD и CPDR), его адрес располагается в регистровой паре HL. Регистровая пара BC содержит счётчик байтов.

После обработки каждого байта операндов их адреса в регистровых парах DE и HL (или только HL) изменяются на единицу: увеличиваются для инструкций, содержащих в своей мнемонике букву I (LDI, LDIR, CPI, CPIR), и уменьшаются для инструкций, содержащих в мнемонике букву D (LDD, LDDR, CPD, CPDR). Содержимое счётчика в регистровой паре BC уменьшается на единицу.

Инструкции, мнемоники которых заканчиваются на R (LDIR, LDDR, CPIR и CPDR), обеспечивают автоматическое повторение операции. Выполнение этих инструкций заканчивается, когда счётчик в регистровой паре BC принимает нулевое значение. Кроме того, инструкции сравнения CPIR и CPDR завершаются, если содержимое аккумулятора совпало с содержимым байта памяти, адресуемого регистровой парой HL.

Инструкции с мнемоникой без завершающей буквы R (LDI, LDD, CPI и CPD) обрабатывают только один байт.


Инструкции, мнемоники которых начинаются с букв LD (LDI, LDIR, LDD и LDDR), осуществляют пересылку байтов из поля второго операнда, адресуемого регистровой парой HL, в поле первого операнда, адресуемого регистровой парой DE. При их выполнении флажки S, Z и C не изменяются, флажки H и N сбрасываются, а флажок P/V устанавливается, если после выполнения инструкции счётчик в регистровой паре BC имеет ненулевое значение, и сбрасывается, если счётчик обнуляется. Следовательно, для инструкций, обеспечивающих повторение (LDIR и LDDR) флажок P/V будет всегда сброшен.

Инструкции, мнемоники которых начинаются с букв CP (CPI, CPIR, CPD и CPDR), выполняют сравнение содержимого аккумулятора с байтами памяти, адресуемыми регистровой парой HL. По результатам сравнения устанавливаются или сбрасываются флажки S, Z и H. Флажок C не изменяется; флажок N устанавливается; флажок P/V, как и в инструкциях пересылки, устанавливается, если после завершения выполнения команды счётчик (регистровая пара BC) не равен нулю, и сбрасывается в противном случае.


Содержание раздела