and, or, xor


-

The and, or, and xor instructions of the device should be specified in the following formats.

-

AND reg1, reg2

-

OR reg1, reg2

-

XOR reg1, reg2

 

-

In asrh, the following formats can also be used in addition to the above.

-

and imm, reg2

-

or imm, reg2

-

xor imm, reg2

 

-

If the following is specified for imm in syntax "and imm, reg2", "or imm, reg2", and "xor imm, reg2", the assembler executes instruction expansion to generate one or more machine instructions.

(a)

0

and     0, reg
and     r0, reg

(b)

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

and     imm16, reg
andi    imm16, reg, reg

(c)

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

and     imm5, reg
mov     imm5, r1
and     r1, reg

(d)

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

and     imm16, reg
movea   imm16, r0, r1
and     r1, reg

(e)

Absolute expression exceeding the above ranges

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

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

 

Else

and     imm, reg
mov     imm, r1
and     r1, reg

(f)

Relative expression having !label or %label

and     !label, reg
andi    !label, reg, reg
and     %label, reg
andi    %label, reg, reg

(g)

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

and     $label, reg
movea   $label, r0, r1
and     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

and     #label, reg
mov     #label, r1
and     r1, reg
and     label, reg
mov     label, r1
and     r1, reg
and     $label, reg
mov     $label, r1
and     r1, reg