ХАНДЫФАР

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

______________________OR AL, imm8 - AL OR imm8.
______________________OR AX, imm16 - AX OR imm16.
______________________OR reg/mem8, imm8 - reg/mem8 OR imm8.
______________________OR reg/mem16, imm16 - reg/mem16 OR imm16.
______________________OR reg/mem16, imm8 - reg/mem16 OR imm8 (знаково-расширенный).
______________________OR reg/mem8, reg8 - reg/mem8 OR reg8.
______________________OR reg/mem16, reg16 - reg/mem16 OR reg16.
______________________OR reg8, reg/mem8 - reg8 OR reg/m8.
______________________OR reg16, reg/mem16 - reg16 OR reg/m16.

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

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

В качестве первого примера рассмотрим случай, когда регистр al содержит 3610, регистр bl содержит 4110 После выполнения инструкции or 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, 00100100b _; Копируем значение 36 в регистр al
  8. ________mov_____bl, 00101001b__; Копируем значение 41 в регистр bl
  9. ________or______al, bl ________; Выключаем биты 0 и 3
  10. ________mov_____ax, 0609h______; Копируем значение 0609 в регистр ax
  11. ________or______ax, 3030h______; Подставляем 3 там где нули
  12. ________mov_____ax, 4C00h______; Копируем значение функции завершения процесса в ah а значение в al
  13. ________int_____21h ___________; Вызываем прерывание DOS
  14. ____main endp _________________; Конец процедуры main
  15. code ends _____________________; Конец сегмента кода
  16. end main ______________________; Конец файла. Точкой входа указывается процедура main
Made on
Tilda