Арифметические команды


предназначены для выполнения четырех основных видов арифметических действий над 8- и 16- разрядными операндами в знаковом и беззнаковом представлении. Кроме основных арифметических команд имеются операции коррекции арифметических результатов для их перевода в упакованную или неупакованную форму. Признаки полученного результата отображаются в 6 битах регистра Flags (CF, AF, SF, ZF, PF и OF).

 

Пример: add ax, bx

 

 

Логические команды

предназначены для выполнения четырех логических действий над 8- и 16-битовыми логическими структурами: получение инверсного кода, логическое произведение, логическая сумма, сумма по модулю два. Команды AND, TEST, OR и XOR воздействуют на арифметические флаги следующим образом: флаги OF и CF всегда сбрасываются в нулевое состояние; состояния флагов SF, ZF, PF зависят от полученного результата и определяются по тем же правилам, что и в командах арифметических операций; состояние флага AF не определено. Команда NOT не влияет на состояние флагов.

 

Пример: not ax

 

Команды сдвига

предназначены для выполнения логических, арифметических и циклических сдвигов. Поле операнда имеет формат mem/reg, count. Здесь mem/reg адресует регистр или ячейку памяти, а count (счет или счетчик) определяет число сдвигов. Число сдвигов может быть указано как константа 1 (статический сдвиг) или как регистр CL. В первом случае осуществляется сдвиг на один байт, а во втором - число сдвигов определяется содержимым регистра CL, которое должно быть беззнаковым целым двоичным числом. Таким образом, число сдвигов можно задать переменной, вычисляемой во время выполнения программы (так называемый динамический сдвиг). При выполнении команд сдвигов флаги изменяются следующим образом:

  1. состояние флага AF всегда не определено;
  2. флаг CF всегда содержит значение последнего выдвинутого бита;
  3. в однобитных сдвигах флаг OF=0, если операция изменила значение старшего (знакового) бита операнда; при сдвиге на несколько бит состояние флага OF не определено;
  4. циклические сдвиги влияют только на флаги OF и CF;
  5. в арифметических и логических сдвигах флаги SF, ZF и PF изменяются в соответствии с полученным результатом.

 

Пример: shl ax, 1

 

 



Дата добавления: 2021-06-28; просмотров: 402;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.008 сек.