Команда or выполняет операцию логического (побитового) сложения двух операндов. Результат замещает первый операнд (приемник); второй операнд (источник) не изменяется. В качестве первого операнда можно указывать регистр (кроме сегментного) или ячейку памяти, в качестве второго - регистр (кроме сегментного), ячейку памяти или непосредственное значение, однако не допускается определять оба операнда одновременно как ячейки памяти. Операнды команды or могут быть байтами или словами. Команда воздействует на флаги OF, SF, ZF, PF и CF, при этом флаги CF и OF всегда сбрасываются в 0.

Правила побитового сложения:


Первый операнд-бит 0101
Второй операнд-бит 0011
Бит результата 0111

Пример 1


mov AX,000Fh
mov BX,00F0h
or AX,BX ;AX=00FFh, BX=00F0h

Пример 2


mov AX,000Fh
mov BX,00F7h
or AX,BX ;AX=00FFh, BX=00F7h

Пример 3


mov AX,000Fh
or AX,8001h ;AX=800Fh

Пример 4


; В полях данных
mask db 80h
;B программном сегменте
mov CH,17h
or CH,mask ;CH=97h

Допустимо использование 32-битовых операндов и дополнительных режимов адресации 32-разрядных процессоров.

Пример


;В полях данных
mem dd 80000000h
; В программном сегменте
or mem,0C0h ;mem=800000C0h