Assembler - язык неограниченных возможностей


Пересылка данных - часть 2


Слова «выше» и «ниже» в таблице 5 относятся к сравнению чисел без знака, слова «больше» и «меньше» учитывают знак.


Таблица 5. Разновидности команды CMOVcc


Код команды Реальное условие Условие для CMP
CMOVA
CMOVNBE
CF = 0 и ZF = 0 если выше
если не ниже или равно
CMOVAE
CMOVNB
CMOVNC
CF = 0 если выше или равно
если не ниже
если нет переноса
CMOVB
CMOVNAE
CMOVC
CF = 1 если ниже
если не выше или равно
если перенос
CMOVBE
CMOVNA
CF = 1 и ZF = 1 если ниже или равно
если не выше
CMOVE
CMOVZ
ZF = 1 если равно
если ноль
CMOVG
CMOVNLE
ZF = 0 и SF = OF если больше
если не меньше или равно
CMOVGE
CMOVNL
SF = OF если больше или равно
если не меньше
CMOVL
CMOVNGE
SF <> OF если меньше
если не больше или равно
CMOVLE
CMOVNG
ZF = 1 и SF <> OF если меньше или равно
если не больше
CMOVNE
CMOVNZ
ZF = 0 если не равно
если не ноль
CMOVNO OF = 0 если нет переполнения
CMOVO OF = 1 если есть переполнение
CMOVNP
CMOVPO
PF = 0 если нет четности
если нечетное
CMOVP
CMOVPE
PF = 1 если есть четность
если четное
CMOVNS SF = 0 если нет знака
CMOVS SF = 1 если есть знак


  • Команда:
  • XCHG операнд1, операнд2
  • Назначение:
  • Обмен операндов между собой
  • Процессор:
  • 8086

    Содержимое операнда 2 копируется в операнд 1, а старое содержимое операнда 1 — в операнд 2. XCHG можно выполнять над двумя регистрами или над регистром и переменной.

    xchg eax,ebx ; то же, что три команды на языке С: ; temp = eax; eax = ebx; ebx = temp; xchg al,al ; а эта команда не делает ничего

  • Команда:
  • BSWAP регистр32
  • Назначение:
  • Обмен байт внутри регистра
  • Процессор:
  • 80486

    Обращает порядок байт в 32-битном регистре. Биты 0 – 7 (младший байт младшего слова) меняются местами с битами 24 – 31 (старший байт старшего слова), а биты 8 – 15 (старший байт младшего слова) меняются местами с битами 16 – 23 (младший байт старшего слова).

    mov eax,12345678h bswap eax ; теперь в еах находится 78563412h




    Начало  Назад  Вперед