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

         

Логические операции


  • Команда:
  • AND приемник, источник
  • Назначение:
  • Логическое И
  • Процессор:
  • 8086

    Команда выполняет побитовое «логическое И» над приемником (регистр или переменная) и источником (число, регистр или переменная; источник и приемник не могут быть переменными одновременно) и помещает результат в приемник. Любой бит результата равен 1, только если соответствующие биты обоих операндов были равны 1, и равен 0 в остальных случаях. Наиболее часто AND применяют для выборочного обнуления отдельных бит, например, команда

    and al,00001111b

    обнулит старшие четыре бита регистра AL, сохранив неизменными четыре младших.

    Флаги OF и CF обнуляются, SF, ZF и PF устанавливаются в соответствии с результатом, AF не определен.

  • Команда:
  • OR приемник, источник
  • Назначение:
  • Логическое ИЛИ
  • Процессор:
  • 8086

    Выполняет побитовое «логическое ИЛИ» над приемником (регистр или переменная) и источником (число, регистр или переменная; источник и приемник не могут быть переменными одновременно) и помещает результат в приемник. Любой бит результата равен 0, только если соответствующие биты обоих операндов были равны 0, и равен 1 в остальных случаях. Команду OR чаще всего используют для выборочной установки отдельных бит, например, команда

    or al,00001111b

    приведет к тому, что младшие четыре бита регистра AL будут установлены в 1.

    При выполнении команды OR флаги OF и CF обнуляются, SF, ZF и PF устанавливаются в соответствии с результатом, AF не определен.

  • Команда:
  • XOR приемник, источник
  • Назначение:
  • Логическое исключающее ИЛИ
  • Процессор:
  • 8086

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

    xor ах,ах ; обнуление регистра АХ


    или

    xor ах,bх xor bх,ах xor ах,bх ; меняет местами содержимое АХ и ВХ

    Оба этих примера могут выполняться быстрее, чем соответствующие очевидные команды

    mov ax,0

    или

    xchg ax,bx

  • Команда:
  • NOT приемник
  • Назначение:
  • Инверсия
  • Процессор:
  • 8086
    Каждый бит приемника (регистр или переменная), равный нулю, устанавливается в 1, и каждый бит, равный 1, сбрасывается в 0. Флаги не затрагиваются.

  • Команда:
  • TEST приемник, источник
  • Назначение:
  • Логическое сравнение
  • Процессор:
  • 8086
    Вычисляет результат действия побитового «логического И» над приемником (регистр или переменная) и источником (число, регистр или переменная; источник и приемник не могут быть переменными одновременно) и устанавливает флаги SF, ZF и PF в соответствии с полученным результатом, не сохраняя результат (флаги OF и CF обнуляются, значение AF не определено). TEST, так же как и СМР, используется в основном в сочетании с командами условного перехода (Jcc), условной пересылки данных (CMOVcc) и условной установки байт (SETcc).


    Содержание раздела