ХАНДЫФАР

Логическое побитовое И

_____________________AND AL, imm8 - AL AND imm8.
_____________________AND AX, imm16 - AX AND imm16.
_____________________AND reg/mem8, imm8 - reg/mem8 AND imm8.

_____________________AND reg/mem16, imm16 - reg/mem16 AND imm16.

_____________________AND reg/mem16, imm8 - reg/mem16 AND imm8 (знаково-расширенный).

_____________________AND reg/mem8, reg8 - reg/mem8 AND reg8.
_____________________AND reg/mem16, reg16 - reg/mem16 AND reg16.
_____________________AND reg8, reg/mem8 - reg8 AND reg/mem8.
_____________________AND reg16, reg/mem16 - reg16 AND reg/mem16.

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

Эта инструкция может быть использована с префиксом lock, чтобы позволить ей выполняться атомарно.

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

В качестве примера рассмотрим случай, когда регистр al содержит 4510, регистр bl содержит 4010 После выполнения инструкции and al, bl, мы включаем определённые биты. Отсчёт начинается с 0, с права.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. code segment public ___________; Начало сегмента кода
  5. ____assume cs:code
  6. ____main proc _________________; Начало процедуры main
  7. ________mov_____al, 00101101b _; Копируем значение 45 в регистр al
  8. ________mov_____bl, 00101000b__; Копируем значение 40 в регистр bl
  9. ________and_____al, bl ________; Выключаем все биты кроме бита 3 и 5
  10. ________mov_____ax, 4C00h______; Копируем значение функции завершения процесса в ah а значение в al
  11. ________int_____21h ___________; Вызываем прерывание DOS
  12. ____main endp _________________; Конец процедуры main
  13. code ends _____________________; Конец сегмента кода
  14. end main ______________________; Конец файла. Точкой входа указывается процедура main
Made on
Tilda