Читайте также:
|
|
Логические операции являются важным элементом в проектировании микросхем. Они используются для сброса и установки битов и для арифметических операций в коде ASCII. Формат команд:
Имя-команды операнд1, операнд2
Первый операнд в логических командах указывает на один байт или слово в регистре или в памяти и является единственным значением, которое может изменяться после выполнения команды.
Имена логических команд:
AND - если оба из сравниваемых битов равны 1, то результат равен 1; во всех остальных случаях результат – 0
OR - если хотя бы один из сравниваемых битов равен 1, то результат равен 1; если сравниваемые биты равны 0, то результат – 0
XOR - если один из сравниваемых битов равен 0, а другой равен 1, то результат равен 1; если сравниваемые биты одинаковы (оба – 0 или оба – 1), то результат – 0
TEST – сравнивает два значения, не изменяя их
NOT операнд – устанавливает обратное значение битов в байте или в слове, в регистре или в памяти: нули становятся единицами, а единицы – нулями.
Команды сдвига и циклического сдвига
Формат команд:
Имя-команды операнд1, операнд2
Операнд1 – значение, которое сдвигается; операнд2 – значение сдвига. Значение сдвига на 1 может быть закодировано как непосредственный операнд; значение больше 1 должно находиться в регистре CL. При выполнении команд сдвига флаг CF во флаговом регистре всегда содержит значение последнего выдвинутого бита.
Команды сдвига:
SHR - логический (беззнаковый) сдвиг вправо
SHL - логический (беззнаковый) сдвиг влево
SAR - арифметический сдвиг вправо
SAL – арифметический сдвиг влево
Арифметический сдвиг вправо отличается от логического тем, что для заполнения левого бита используется знаковый бит. Таким образом, положительные и отрицательные величины сохраняют свой знак. При сдвигах влево правые биты заполняются нулями, поэтому результат арифметического и логического сдвигов идентичен. Сдвиг влево часто применяется для удваивания чисел, а сдвиг вправо – для деления на 2. Эти операции выполняются значительно быстрее, чем команды умножения или деления.
Команды циклического сдвига:
ROR - циклический сдвиг вправо
ROL - циклический сдвиг влево
RCR - циклический сдвиг вправо с переносом
RCL - циклический сдвиг влево с переносом
Циклический сдвиг представляет собой операцию сдвига, при которой выдвинутый бит занимает освободившийся разряд. В командах циклического сдвига с переносом участвует флаг CF. Выдвигаемый из регистра бит заносится в флаг CF, а значение CF при этом поступает в освободившуюся позицию.
Дата добавления: 2014-12-19; просмотров: 126 | Поможем написать вашу работу | Нарушение авторских прав |
|