<<
>>

Логические операции, побитовые операции и операции сдвига

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

Следующая группа команд содержит логические команды с двумя операндами. Все они выполняются стандартным способом. В группе команд обычного и циклического сдвига у всех операций в роли целевых адресов выступают действительные адреса; исходный адрес представлен в виде байтового регистра CL или единицы. Выполнение операций сдвига оказывает влияние на все четыре флага; при циклических сдвигах могут изменяться только флаги переноса и переполнения.

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

Команды, входящие в следующую группу, применяются для управления флаговыми разрядами. В основном они нужны для подготовки к условным переходам. Двунаправленная стрелка () в данном случае обозначает проведение операций сравнения и проверки с двумя неизменяемыми операндами.

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

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

<< | >>
Источник: Таненбаум Э.. Архитектура компьютера. 5-е изд. 2007

Еще по теме Логические операции, побитовые операции и операции сдвига:

  1. ОПЕРАЦИЯ ИНТЕЛЛЕКТУАЛЬНАЯ
  2. ОПЕРАЦИЯ ФОРМАЛЬНАЯ
  3. ОПЕРАЦИЯ
  4. ОПЕРАЦИЯ КОНКРЕТНАЯ
  5. ОПЕРАЦИЯ СОЗНАТЕЛЬНАЯ
  6. Действия, операции и психологические приемы.
  7. ОПЕРАЦИЯ ПРИСПОСОБИТЕЛЬНАЯ
  8. § 2. Правовое регулирование валютных операций
  9. 6. Договоры об отдельных транспортно-экспедиционных операциях и услугах
  10. 5. Внешнеэкономические подрядные операции с давальческим сырьем
  11. Статья 1068. Операции со счетом, которые выполняются банком
  12. Статья 213. Нарушение порядка осуществления операций с металлоломом
  13. Статья 1101. Сообщение о проведенных операциях
  14. 4.1. Содержание основных задач и операций, выполняемых специалистом: