Revision as of 00:24, 6 August 2011
|Function||Logically OR two values|
ORR will perform a logical, bitwise, OR between the two operands, placing the result in the destination register; this is useful for setting certain bits. Operand 1 is a register, operand 2 can be a register, shifted register, or an immediate value (which may be shifted. If the S bit is set (ORRS), the N and Z flags are set according to the result, the C flag is set according to the shift (if used), and the V flag remains unaltered.
ORR is useful for setting bits in a bitfield. For each bit, ORRing with 1 will set the bit, and ORRing with 0 will leave it as it was.
ORR<suffix> <dest>, <op 1>, <op 2>
dest = op_1 OR op_2
ORR sets the result bit upon both of the input bits being the same.
|op_1 bit||op_2 bit||Result bit|
ORR R0, R0, #3 ; Set bits zero and one of R0.
The instruction bit pattern is as follows:
|31 - 28||27||26||25||24 - 21||20||19 - 16||15 - 12||11 - 0|
|condition||0||0||I||1 1 0 0||S||op_1||dest||op_2/shift|