OR              OR operation                         Flags: O D I T S Z A P C
0 - - - * * ? * 0
OR destination,source

Logic destination ← destination OR source

OR performs a bit-by-bit logical inclusive OR operation on its
operands and returns the result to destination. OR sets each bit
of the result to one if either or both of the corresponding bits
of the operands are one.


OR truth table
a b a OR b
0 0 0
0 1 1
1 0 1
1 1 1


Opcode Format
08 /r OR r/m8,r8
09 /r OR r/m16,r16
09 /r OR r/m32,r32
0A /r OR r8,r/m8
0B /r OR r16,r/m16
0B /r OR r32,r/m32
0C ib OR AL,imm8
0D iw OR AX,imm16
0D id OR EAX,imm32
80 /1 ib OR r/m8,imm8
81 /1 iw OR r/m16,imm16
81 /1 id OR r/m32,imm32
83 /1 ib OR r/m16,imm8
83 /1 ib OR r/m32,imm8


Length and timing
Operands Bytes 8088 186 286 386 486 Pentium
reg, reg 2 3 3 2 2 1 1 UV
mem, reg 2+d(0,2) 24+EA 10 7 7 3 3 UV
reg, mem 2+d(0,2) 13+EA 10 7 6 2 2 UV
reg, imm 2+i(1,2) 4 4 3 2 1 1 UV
mem, imm 2+d(0,2) 23+EA 16 7 7 3 3 UV*
+i(1,2)
acc, imm 1+i(1,2) 4 4 3 2 1 1 UV

* = not pairable if there is a displacement and immediate