Главная Случайная страница



Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать неотразимый комплимент Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника







SAL, SAR, SHL и SHR





Сдвиг влево или вправо

Операция: Выполняет сдвиг битов влево или вправо. Данные операции могут выполняться в байте или в слове, в регистре или в памяти. Сдвиг на один бит кодируется в команде значением 1; сдвиг более чем на один бит требует указания регистра CL, который содержит счетчик сдвига.

Команда SAR выполняет арифметический сдвиг, который учитывает знак сдвигаемого значения. Команды SHL и SHR выполняют логический сдвиг и рассматривают знаковый бит как обычный бит данных. Команда SAL выполняется аналогично команде SHL. Команды SAL и SHL сдвигают биты влево определенное число раз и правый освобождающийся бит заполняют нулевым значением.

Команда SHR сдвигает биты вправо определенное число раз и левый освобождающийся бит заполняет нулевым значением. Команда SAR сдвигает биты вправо определенное число раз и левый освобождающийся бит заполняет значением знакового бита (0 или 1). Во всех случаях значения битов, выдвигаемых за разрядную сетку, теряются.

Флаги: Команда воздействует на флаги CF, OF, PF, SF и ZF (флаг AF не определен).

SBB

Вычитание с заемом

Операция: Обычно используется при вычитании многословных двоичных величин для учета единичного бита переполнения в последующей фазе операции. В случае, если флаг CF установлен в 1, то команда SBB сначала вычитает 1 из операнда 1. Команда SBB всегда вычитает операнд 2 из операнда 1, аналогично команде SUB.

Флаги: Команда воздействует на флаги AF, CF, OF, PF. SF и ZF.

SCAS/SCASB/SCASW

Поиск байта или слова в строке

Операция: Выполняет поиск определенного байта или слова в строке. Для команды SCASB необходимое значение загружается в регистр AL, а для команды SCASW — в регистр AX. Регистровая пара ES:DI указывает на строку в памяти, которая должна быть сканирована. Данные команды обычно используются с префиксом REPE или REPNE. В случае, если флаг DF равен нулю, то операция сканирует память слева направо и увеличивает регистр DI. В случае, если флаг DF равен единице, то операция сканирует память справа налево и уменьшает регистр DI.



Флаги: Команда воздействует на флаги AF, CF, OF, PF, SF и ZF.

Объектный код: 1010111w (без операндов).

STC

Установка флага переноса

Операция: Устанавливает значение флага CF в 1.

Флаги: Команда воздействует на флаг CF (устанавливается в 1).

Объектный код: 11111001 (без операндов).

STD

Установка флага направления

Операция: Устанавливает значение флага направления в 1. В результате строковые операции, такие, как MOVS или CMPS, обрабатывают данные справа налево.

Флаги: Команда воздействует на флаг DF (устанавливается в 1).

Объектный код: 11111101 (без операндов).

STI

Установка флага прерывания

Операция: Разрешает маскируемые внешние прерывания после выполнения следующей команды и устанавливает значения флага прерывания IF в 1.

Флаги: Команда воздействует на флаг IF (устанавливается в 1).

Объектный код: 11111011 (без операндов).

STOS/STOSB/STOSW

Запись однобайтовой или двухбайтовой строки

Операция: Сохраняет байт или слово в памяти. При использовании префикса REP операция дублирует значение байта или слова определенное число раз, что делает ее удобной для очистки областей памяти. Для команды STOSB необходимый байт загружается в регистр AL, а для команды STOSW необходимое слово загружается в регистр АХ. Регистровая пара ES:DI указывает область памяти, куда должен быть записан байт или слово. В случае, если флаг DF равен нулю, то операция записывает в память слева направо и увеличивает регистр DI. В случае, если флаг DF равен единице, то операция записывает в память справа налево и уменьшает значение в регистре DI.

Флаги: Не меняются.

Объектный код: 1010101w (без операндов).

SUB

Вычитание двоичных чисел

Операция: Вычитает байт или слово в регистре, памяти или непосредственное значение из регистра; или вычитает байт или слово в регистре или непосредственное значение из памяти.

Флаги: Команда воздействует на флаги AF, CF, OF, PF, SF и ZF.

TEST

Проверка битов

Операция: Команда выполняет проверку байта или слова на определенную битовую комбинацию. Команда TEST действует аналогично команде AND, но не изменяет результирующий операнд. Операнды могут иметь однобайтовые или двухбайтовые значения. Второй операнд может иметь непосредственное значение. Команда выставляет флаги в соответствии с логической функцией И.

Флаги: Команда воздействует на флаги CF, OF, PF, SF и ZF (флаг AF не определен).

WAIT

Установка процессора в состояние ожидания

Операция: Позволяет процессору оставаться в состоянии ожидания, пока не произойдет внешнее прерывание. Данная операция необходима для обеспечения синхронизации процессора с внешним устройством или с сопроцессором. Процессор ожидает, пока внешнее устройство (или сопроцессор) не закончит выполнение операции и на входной линии TEST не появится сигнал (активный уровень).

Флаги: Не меняются.



Объектный код: 10011011

XCHG

Перестановка

Операция: Переставляет два байта или два слова между двумя регистрами (например, XCHG AH,BL) или между регистром и памятью (например, XCHG CX,word).

Флаги: Не меняются.

XLAT

Перекодировка

Операция: Транслирует байты в другой формат, например при переводе нижнего регистра в верхний или при перекодировке ASCII-кода в EBCDIC-код. Для выполнения данной команды необходимо определить таблицу преобразования байт и загрузить ее адрес в регистр ВХ. Регистр AL должен содержать байт, который будет преобразован с помощью команды XLAT. Операция использует значение в регистре AL как смещение в таблице, выбирает байт по этому смещению и помещает его в регистр AL.

Флаги: Не меняются.

Объектный код: 11010111 (без операндов).

XOR

Исключающее ИЛИ

Операция: Выполняет логическую операцию исключающего ИЛИ над битами двух операндов. Операндами являются байты или слова в регистрах или в памяти, второй операнд может иметь непосредственное значение. Команда XOR обрабатывает операнды побитово. В случае, если проверяемые биты одинаковы, то команда XOR устанавливает бит в операнде 1 равным нулю, если биты различны, то бит в операнде 1 устанавливается равным единице.

Флаги: Команда воздействует на флаги CF, OF, PF, SF и ZF (флаг AF неопределен).

 

 

,








Date: 2015-05-22; view: 498; Нарушение авторских прав



mydocx.ru - 2015-2021 year. (0.008 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию