Операции обработки блоков данных
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) не равен нулю, и сбрасывается в противном случае.