The '''OR''' numerical operator returns a comparative bit value of 1 if either value's bit is on.


{{PageSyntax}}
:: firstvalue '''OR''' secondvalue


* If both bits are off, it returns 0.
* If one or both bits are on then it returns 1.
* OR never turns off a bit and can be used only to turn a bit on.


{{Template:LogicalTruthTable}}


''Example 1:'' OR always turns bits on! Never off.
{{CodeStart}} '' ''
 a% = 5 ' 101 binary
 b% = 4 ' 100 binary
 results% = a% {{Cl|OR}} b%  ' still 101 binary using OR
 {{Cl|PRINT}} &quot;Results% =&quot;; results% '' ''
{{CodeEnd}}
{{OutputStart}}
 Results% = 5 
{{OutputEnd}}


''Example 2:'' Turning a data register bit on.
{{CodeStart}} '' ''  
   address% = 888    'parallel port data register
   bytevalue% = {{Cl|INP}}(address%)
   {{Cl|OUT}} address%, bytevalue% {{Cl|OR}} 4 '' ''
{{CodeEnd}}

:''Explanation:'' The third register bit is only turned on if it was off. This ensures that a bit is set. OR could set more bits on with a sum of bit values such as: OUT address%, 7 would turn the first, second and third bits on. 1 + 2 + 4 = 7



''See also:'' 
* [[AND]], [[XOR]] 
* [[AND (boolean)]], [[OR (boolean)]]
* [[Binary]], [[Boolean]]


{{PageNavigation}}