Реклама:

В следующей группе содержатся команды знакового расширения, отрицания, логического отрицания, положительного и отрицательного приращений. Операции знакового расширения, не располагающие явными операндами, работают с комбинациями регистров DX: АХ или АН : AL. Применительно ко всем остальным операциями из этой группы операнды (единичные) могут располагаться по любым действительным адресам. Выполнение операций NEG, INC и DEC определяет состояние флагов стандартным способом, однако при отрицательном и положительном приращении флаг переноса не изменяется. Некоторые специалисты считают это странное последнее обстоятельство проектной ошибкой.

Следующая группа команд содержит логические команды с двумя операндами. Все они выполняются стандартным способом. В группе команд обычного и циклического сдвига у всех операций в роли целевых адресов выступают действительные адреса; исходный адрес представлен в виде байтового регистра CL или единицы. Выполнение операций сдвига оказывает влияние на все четыре флага; при циклических сдвигах могут изменяться только флаги переноса и переполнения. После обычного или циклического сдвига переносимый разряд может оказаться либо старшим, либо младшим - в зависимости от направления обычного или циклического сдвига. При выполнении циклического сдвига с переносом командами RCR, RCL, RCRB и RCLB сочетание переноса и операнда, расположенного по действительному адресу, образует 17- или 9-разрядную комбинацию регистров кругового сдвига, которая упрощает обычные и циклические сдвиги с участием нескольких слов.

Команды, входящие в следующую группу, применяются для управления флаговыми разрядами. В основном они нужны для подготовки к условным переходам. Двунаправленная стрелка (<->) в данном случае обозначает проведение операций сравнения и проверки с двумя неизменяемыми операндами. При выполнении команды TEST с операндами проводится операция логического И, по результатам которой устанавливаются или сбрасываются нулевой и знаковый флаги. Вычисленное значение при этом не сохраняется, а операнды остаются без изменений. Команда СМР сводится к вычислению разности операндов, в результате устанавливаются или сбрасываются все четыре флага. Флаг направления, регламентирующий отрицательное и положительное приращение значений регистров SI и DI при выполнении строковых команд, можно установить или сбрасывать командами STD и CLD, соответственно.

В процессоре 8088 также предусмотрены флаги четности и служебного переноса. Флаг четности, как следует из его названия, показывает на четность или нечетность результата. Флаг служебного переноса позволяет проверить, не произошел ли перенос в нижнем (4-разрядном) полубайте целевого адрес. Кроме того, существуют команды LAHF и SAHF, которые копируют нижний байт флагового регистра в регистр АН и наоборот. Флаг переполнения находится в старшем байте регистра кода условия и во время выполнения вышеупомянутых команд не копируется. Команды и флаги, о которых идет речь в этом абзаце, введены, в первую очередь, для обратной совместимости с процессорами 8080 и 8085.

Перемещение, копирование и арифметические команды || Оглавление || Операции организации циклов и повторяющиеся строковые операции