or


Logical sum.

[Syntax]

-

or reg1, reg2

-

or imm, reg2

 

The following can be specified for imm:

-

Absolute expression having a value of up to 32 bits

-

Relative expression

[Function]

-

Syntax "or reg1, reg2"

ORs the value of the register specified by the first operand with the value of the register specified by the second operand, and stores the result in the register specified by the second operand.

-

Syntax "or imm, reg2"

ORs the value of the absolute expression or relative expression specified by the first operand with the value of the register specified by the second operand, and stores the result in the register specified by the second operand.

[Description]

-

When this instruction is executed in syntax "or reg1, reg2", the assembler generates one or machine instruction.

-

When this instruction is executed in syntax "or imm, reg2", and the following expression is specified for imm, the assembler executes instruction expansion to generate one or more machine instructionsNote.

(a)

0

or      0, reg
or      r0, reg

(b)

Absolute expression having a value in the range of 1 to 65,535

or      imm16, reg
ori     imm16, reg, reg

(c)

Absolute expression having a value in the range of -16 to -1

or      imm5, reg
mov     imm5, r1
or      r1, reg

(d)

Absolute expression having a value in the range of -32,768 to -17

or      imm16, reg
movea   imm16, r0, r1
or      r1, reg

(e)

Absolute expression exceeding the above ranges

If all the lower 16 bits of the value of imm are 0

or      imm, reg
movhi   HIGHW(imm), r0, r1
or      r1, reg

Else

or      imm, reg
mov     imm, r1
or      r1, reg

(f)

Relative expression having !label or %label

or      !label, reg
ori     !label, reg, reg
or      %label, reg
ori     %label, reg, reg

(g)

Relative expression having $label for a label having a definition in the sdata/sbss-attribute section

or      $label, reg
movea   $label, r0, r1
or      r1, reg

(h)

Relative expression having #label or label, or that having $label for a label having no definition in the sdata/sbss-attribute section

or      #label, reg
mov     #label, r1
or      r1, reg
or      label, reg
mov     label, r1
or      r1, reg
or      $label, reg
mov     $label, r1
or      r1, reg

Note

The or machine instruction does not take an immediate value as an operand.

[Flag]

CY

---

OV

0

S

1 if the word data MSB of the result is 1, 0 if not

Z

1 if the result is 0, 0 if not

SAT

---