Логическое побитовое ИЛИ
______________________OR AL, imm
8 - AL OR imm
8.
______________________OR AX, imm
16 - AX OR imm
16.
______________________OR reg/mem
8, imm
8 - reg/mem
8 OR imm
8.
______________________OR reg/mem
16, imm
16 - reg/mem
16 OR imm
16.
______________________OR reg/mem
16, imm
8 - reg/mem
16 OR imm
8 (знаково-расширенный).
______________________OR reg/mem
8, reg
8 - reg/mem
8 OR reg
8.
______________________OR reg/mem
16, reg
16 - reg/mem
16 OR reg
16.
______________________OR reg
8, reg/mem
8 - reg
8 OR reg/m
8.
______________________OR reg
16, reg/mem
16 - reg
16 OR reg/m
16.
Выполняет побитовую операцию ИЛИ между целевым (первым) и исходным (вторым) операндами и сохраняет результат в расположении целевого операнда. Исходный операнд может быть непосредственным, регистром или ячейкой памяти; конечный операнд может быть регистром или ячейкой памяти. (Однако два операнда памяти не могут быть использованы в одной инструкции.) Каждому биту результата инструкции OR присваивается значение 0, если оба соответствующих бита первого и второго операндов равны 0; в противном случае каждому биту присваивается значение 1.
Эта инструкция может использоваться с префиксом
lock, чтобы разрешить выполнение инструкции атомарно.
В качестве первого примера рассмотрим случай, когда регистр
al содержит
3610, регистр
bl содержит
4110 После выполнения инструкции
or al, bl, мы включаем и выключаем определённые биты. Отсчёт начинается с 0, с права.
- title Автор: Довгополов Евгений Сергеевич
- .model small
- .stack 100h
- code segment public ___________; Начало сегмента кода
- ____assume cs:code
- ____main proc _________________; Начало процедуры main
- ________mov_____al, 00100100b _; Копируем значение 36 в регистр al
- ________mov_____bl, 00101001b__; Копируем значение 41 в регистр bl
- ________or______al, bl ________; Выключаем биты 0 и 3
- ________mov_____ax, 0609h______; Копируем значение 0609 в регистр ax
- ________or______ax, 3030h______; Подставляем 3 там где нули
- ________mov_____ax, 4C00h______; Копируем значение функции завершения процесса в ah а значение в al
- ________int_____21h ___________; Вызываем прерывание DOS
- ____main endp _________________; Конец процедуры main
- code ends _____________________; Конец сегмента кода
- end main ______________________; Конец файла. Точкой входа указывается процедура main