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



Байтовые арифметико-логические операции - часть 4


Состояние флажка C этими инструкциями не изменяется; флажок N сбрасывается при инкременте и устанавливается при декременте; остальные флажки (S, Z, H и P/V) устанавливаются или сбрасываются в соответствии с результатом выполнения операции, флажок P/V при этом служит признаком переполнения.

Остальные инструкции (ADD, ADC, SUB, SBC, AND, OR, XOR и CP) работают с двумя операндами. Первый из них задан неявно – это содержимое аккумулятора. Вторым операндом может быть содержимое аккумулятора или любого из регистров общего назначения, 8-разрядная константа, входящая в состав кода команды, или байт памяти, адресуемый регистровой парой HL или суммой одного из индексных регистров и 8-разрядного смещения. Результат выполнения операции всегда помещается в аккумулятор (инструкция CP не запоминает результат, поэтому в ней содержимое аккумулятора остаётся неизменным). Заметим, что в мнемониках инструкций ADD, ADC и SBC указываются оба операнда, в то время как в остальных пяти двухадресных инструкциях – только второй операнд (аккумулятор подразумевается). Это связано с тем, что в группу двухбайтовых арифметических операций также входят инструкции ADD, ADC и SBC.

Инструкции ADD и ADC выполняют сложение операндов (к аккумулятору прибавляется значение явно заданного операнда). Они отличаются тем, что инструкция ADC дополнительно производит добавление переноса (флажка C), что позволяет организовать сложение чисел с разрядностью, превышающей 8 битов.

Инструкции SUB и SBC выполняют вычитание операндов (из аккумулятора вычитается значение явно заданного операнда. Инструкция SBC дополнительно вычитает значение флажка переноса C.

Инструкции AND, OR и XOR выполняют соответственно операции “И”, “ИЛИ” и “Исключающее ИЛИ” между содержимым аккумулятора и явно заданного операнда.

Инструкция CP выполняет сравнение аккумулятора и явно заданного операнда. Сравнение выполняется путём вычитания значения явно заданного операнда из содержимого аккумулятора. Полученный результат теряется, но производится установка или сброс флажков, отражающих результат операции.

Инструкции ADD, ADC, SUB, SBC и CP оказывают влияние на все флажки, при этом флажок P/V является признаком переполнения, а флажок N сбрасывается в операциях сложения (ADD и ADC) и устанавливается в операциях вычитания (SUB, SBC и CP).

Инструкции AND, OR и XOR также оказывают влияние на все флажки, при этом флажки N и C сбрасываются, флажок H устанавливается, флажок P/V является признаком чётности результата.




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