[Назад] [Далее]

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

  • Команда:
  • 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).


    п»ї
    "target=_blank><\/a>") //-->