T Команды арифметической и логической обработки
В данную группу входят команды, обеспечивающие арифметическую и логическую обработку информации в различных формах ее представления. Для каждой формы представления чисел в архитектуре системы команд предусматривается некий стандартный набор операций. Помимо вычисления результата выполнение арифметических и логических операций сопровождается формированием в АЛУ признаков (флагов), характеризующих этот результат. Наиболее часто фиксируются такие признаки, как: · Z (Zero) — нулевой результат; · N (Negative) — отрицательный результат; · V (oVerflow) — переполнение разрядной сетки; · С (Carry) — наличие переноса.
К стандартному набору операций над целыми числами, представленными в форме с фиксированной запятой, следует отнести: · двухместные арифметические операции (операции с двумя операндами): сложение, вычитание, умножение и деление; · одноместные арифметические операции (операции с одним операндом): вычисление абсолютного значения (модуля) операнда, изменение знака операнда; · операции сравнения, обеспечивающие сравнение двух целых чисел и выработку признаков, характеризующих соотношение между сопоставляемыми величинами (=, <>, >, <, <=, >=).
Часто этот перечень дополняют такими операциями, как вычисление остатка от целочисленного деления, сложение с учетом переноса, вычитание с учетом заема, увеличение значения операнда на единицу (инкремент), уменьшение значения операнда на единицу (декремент). Выполнение арифметических команд может дополнительно сопровождаться перемещением данных из устройства ввода в АЛУ или из АЛУ на устройство вывода. Для работы с числами, представленными в форме с плавающей запятой, в архитектуре системы команд большинства машин предусмотрены: · основные арифметические операции; · операции сравнения, обеспечивающие сравнение двух вещественных чисел с выработкой признаков; · операции преобразования: формы представления (между фиксированной и плавающей запятой), формата представления (с одинарной и двойной точностью). Стандартная система команд ЭВМ содержит команды для выполнения различных логических операций над отдельными битами слов или других адресуемых единиц. Такие команды предназначены для обработки символьных и логических данных. Минимальный набор поддерживаемых логических операций — «НЕ», «И», «ИЛИ» и сложение по модулю 2. В дополнение к побитовым логическим операциям, практически во всех архитектурах систем команд предусмотрены команды для реализации операций логического, арифметического и циклического сдвигов. При логическом сдвиге влево или вправо сдвигаются все разряды слова. Биты, вышедшие за пределы разрядной сетки, теряются, а освободившиеся позиции заполняются нулями. При арифметическом сдвиге данные трактуются как целые числа со знаком, причем бит знака не изменяет положения. При сдвиге вправо освободившиеся позиции заполняются значением знакового разряда, а при сдвиге влево - нулями. Арифметические сдвиги позволяют ускорить выполнение некоторых арифметических операций. Так, если числа представлены двоичным дополнительным кодом, то сдвиги влево и вправо эквивалентны соответственно умножению и делению на 2. При циклическом сдвиге смещаются все разряды слова, причем значение разряда, выходящего за пределы слова, заносится в позицию, освободившуюся с противоположной стороны, то есть потери информации не происходит. Одно из возможных применений циклических сдвигов – это перемещение интересующего бита в крайнюю левую (знаковую) позицию, где он может быть проанализирован как знак числа. Для работы со строками в архитектурах систем команд обычно предусматриваются команды, обеспечивающие перемещение, сравнение, поиск строк. Команды преобразования осуществляют изменение формата представления данных. Примером может служить преобразование из десятичной системы счисления в двоичную или перевод 8-разрядного кода символа из кодировки ASCII в кодировку EBCDIC, и наоборот.
|