Организация ЭВМ и систем: Курс лекций (Позиционные системы счисления. Процессоры семейства IA-32. Лазерные принтеры), страница 21

Приёмником может быть:

—  регистр общего назначения;

—  память.


SHR            приёмник, счётчик              сдвиг вправо                                8086

Флаги:

если счётчик равен 0, флаги не изменяются;

если счётчик равен 1, AF не определён, OF равен значению старшего бита исходного числа, PF, SF, ZF — в соответствии с результатом операции;

если счётчик больше 1, AF, OF не определены, PF, SF, ZF — в соответствии с результатом операции.


SHL            приёмник, счётчик              сдвиг влево                                  8086

Флаги:

если счётчик равен 0, флаги не изменяются;

если счётчик равен 1, AF не определён, OF устанавливается в том случае, если после сдвига старший бит изменился, то есть старшие два бита исходного числа не были равны, иначе OF сбрасывается, PF, SF, ZF — в соответствии с результатом операции;

если счётчик больше 1, AF, OF не определены, PF, SF, ZF — в соответствии с результатом операции.

SAR            приёмник, счётчик              арифметический сдвиг вправо    8086

Флаги:

если счётчик равен нулю, флаги не изменяются;

если счётчик равен 1, AF не определён, OF сброшен, PF, SF, ZF — в соответствии с результатом операции;

если счётчик больше 1, AF, OF не определены, PF, SF, ZF — в соответствии с результатом операции.

SAL            приёмник, счётчик              арифметический сдвиг влево      8086

Команда SAL представляет собой другую мнемонику команды SHL.

SHRD         приёмник, источник, счётчик сдвиг вправо удвоенный       80386

Приёмник и источник должны иметь одинаковый размер 16 или 32 бита.

Значение источника не изменяется.

Источником может быть регистр.

Флаги:

если счётчик равен 0, флаги не изменяются;

если счётчик равен 1, AF не определён, OF устанавливается, если после сдвига старший бит приёмника изменился, иначе OF сбрасывается, PF, SF, ZF — в соответствии с результатом операции;

если счётчик больше 1, AF, OF не определены, PF, SF, ZF — в соответствии с результатом операции.

Если значение счётчика больше, чем разрядность источника и приёмника, результат и флаги не определены.

SHLD         приёмник, источник, счётчик сдвиг влево удвоенный         80386

Приёмник и источник должны иметь одинаковый размер 16 или 32 бита.

Значение источника не изменяется.

Источником может быть регистр.

Флаги:

если счётчик равен 0, флаги не изменяются;

если счётчик равен 1, AF не определён, OF устанавливается, если после сдвига старший бит приёмника изменился, иначе OF сбрасывается, PF, SF, ZF — в соответствии с результатом операции;

если счётчик больше 1, AF, OF не определены, PF, SF, ZF — в соответствии с результатом операции.

Если значение счётчика больше, чем разрядность источника и приёмника, результат и флаги не определены.

ROR приёмник, счётчик                        циклический сдвиг вправо          8086

ROL приёмник, счётчик                        циклический сдвиг влево            8086

RCR приёмник, счётчик                        циклический сдвиг вправо ч/з CF                   8086

RCL приёмник, счётчик                        циклический сдвиг влево ч/з CF 8086

Флаги при выполнении команд циклического сдвига:

CF равен последнему вышедшему за пределы приёмника биту;

OF определён только для сдвигов на один разряд, устанавливается, если старший бит приёмника изменился, иначе — сбрасывается;

AF, PF, SF, ZF не изменяются.

7.6.  Команды операций над битами и байтами

BT              база, смещение                    проверка бита                            80386

Считывает в флаг CF значение бита из последовательности битов, определённой базой, с заданным смещением.

Базой может быть:

—  регистр общего назначения;

—  память.

Смещением может быть:

—  непосредственный операнд;

—  регистр общего назначения.

Если база — регистр общего назначения, то в заданном смещении процессор использует только младшие 4 или 5 бит соответственно размеру базы 16 или 32 бита.