October 18 2017 12:23:57
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
КОМАНДЫ БИТОВЫХ И БАЙТОВЫХ ОПЕРАЦИЙ
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ

Процессор выполняет несколько команд, реализующих сдвиги размещенного в регистре или памяти 8-, 16- или 32-разрядного операнда r/m на заданное число разрядов n. Значение n определяется содержимым регистра CL (переменная разрядность) или числом, заданным в виде непосредственного операнда im8 (фиксированная разрядность). Величина n задается пятью младшими разрядами содержимого CL или операнда im8 и может принимать значения от 0 до 31. Реализация различных команд сдвигов показана на рис. 2.14.

img007

Команда SHL/SAL осуществляет сдвиг адресуемого операнда, размещенного в регистре или памяти, влево на заданное число разрядов; освобождающиеся младшие разряды заполняются нулями. Команды SHR, SAR сдвигают адресуемый операнд вправо. При выполнении команды SHR освобождающиеся старшие разряды заполняются нулями. Команда SAR сохраняет знак операнда; для этого освобождающиеся слева разряды заполняются значе­ниями старшего (знакового) разряда. Выполнение команд циклических сдвигов ROL, ROR, RCR, RCL иллюстрируется на рис. 2.14.

Команды SHLD, SHRD используют два операнда, первый из которых r/m может храниться в регистре или памяти, второй r - в регистре. При выполнении команды SHLD первый операнд сдвигается влево на заданное число разрядов, а в его освободившиеся младшие разряды вводится соответствующее число старших разрядов второго операнда. При выполнении команды SHRD первый операнд сдвигается вправо, а в освобождающиеся старшие разряды последовательно вводятся младшие разряды второго операнда. Копия второго операнда г сохраняется в соответствующем регистре в исходном состоянии (без сдвига).

Во всех видах сдвигов признак CF принимает значение последнего выдвигаемого бита (в командах SHLD, SHRD - последнего бита, выдвигаемого из первого операнда). При одноразрядных сдвигах (n = 1) устанавливается значение признака переполнения OF = 1, если изменилось значение знака (старший разряд). При многоразрядных сдвигах (n > 1) значение признака OF оказывается неопределенным. При выполнении команды SAR значение знакового разряда не меняется, поэтому всегда устанавливается значение OF = 0.

2.2.4. КОМАНДЫ БИТОВЫХ И БАЙТОВЫХ ОПЕРАЦИЙ

Команды данной группы приведены в табл. 2.19.

Команды битовых операций ВТ, BTS, BTR, ВТС выбирают из регистра или ячейки памяти значение определенного бита и копируют его в признак CF. Номер бита n задается пятью или четырьмя младшими разрядами содержимого регистра r или непосредственного операнда im8 (в зависимости от разрядности обрабатываемого слова r/m32 или r/m16). При выполнении команды ВТ значение выбранного бита в исходном 16- или 32-разрядном слове остается неизменным; при выполнении BTS значение этого бита устанавливается в 1; при выполнении BTR - сбрасывается в нуль; при выполнении ВТС-инвертируется.

Команды условной установки байтов SETcc производят установку содержимого байта в регистре или ячейке памяти r/m8, указанных в команде.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.04 секунд 2,255,318 уникальных посетителей