Сдвиги и логические команды
- Часть 1
- | 2
Группа сдвигов и логических команд служит для реализации ряда функций, связанных с преобразованием и анализом операндов, которые размещаются как в регистре, так и в памяти.
Команды сдвига. Обеспечивают прежде всего удвоение чисел и деление пополам. Для удвоения числа без знака достаточно сдвинуть все его разряды на один влево, заполнив младший бит нулем. Поскольку старший бит при сдвиге передается в разряд CF, анализ значения этого флага позволяет судить о точности результата. Например, удвоение числа 65 (01000001) путем сдвига влево дает точный результат 130 (10000010), что определяется значением CF=0. Дальнейшее удвоение даст неправильный результат 4 (00000100), что определяется значением CF=1. Аналогично, используя сдвиг вправо, осуществляется деление числа без знака пополам. Например, сдвигая число 13 (00001101), получаем 6 (00000110) и CF=1, что свидетельствует о неточном результате.
Команды, выполняющие удвоение и деление пополам чисел без знака, имеют мнемокоды SHL (логический сдвиг влево) и SHR (логический сдвиг вправо) соответственно. Аналогичные операции для чисел со знаком реализуются с помощью команд SAL(арифметический сдвиг влево) и SAR (арифметический сдвиг вправо).
Длина сдвигаемого операнда, как обычно, определяется полем wпервого байта (w= 0 - 8-разрядный операнд, w = 1 - 16-разрядный операнд). С помощью любой из перечисленных команд сдвига операнд может сдвигаться на произвольное число разрядов до 8 или 16 включительно.
Значение флага OFустанавливается равным «1», если окончательное значение бита знака при последнем сдвиге отличается от его предыдущего значения.
Логические команды. Служат для реализации четырех булевых функций: AND(поразрядное логическое И), OR (поразрядное логическое ИЛИ), XOR(поразрядная логическая сумма по модулю 2) и NOT (поразрядное логическое НЕ). Сюда также относится команда TEST (проверка), которая состоит в поразрядном логическом умножении (И) операндов без занесения результата умножения в место назначения и служит для анализа содержимого источника по значениям флагов.
предыдущаяследующая© Copyright, 2009.
Для связи: info@dgs-srl.com.