mov


-

The mov instruction of the device should be specified in the following formats.

-

MOV reg1, reg2

-

MOV imm5, reg2

-

MOV imm32, reg1

 

-

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

-

mov32 imm32, reg1

This is specified when a 48-bit instruction with a 32-bit imm is to be explicitly used.

 

-

If the instruction is executed in syntax "mov imm, reg2", and reg2 is r0, the assembler generates a 48-bit mov machine instruction.

 

-

If the following is specified as imm in syntax "mov imm, reg2" and reg2 is not r0, the assembler executes instruction expansion to generate one machine instruction.

(a)

Absolute expression exceeding the range of -16 to +15, but within the range of -32,768 to +32,767

mov     imm16, reg
movea   imm16, r0, reg

(b)

Absolute expression having a value exceeding the range of -32,768 to +32,767

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

mov     imm, reg
movhi   HIGHW(imm), r0, reg

 

ElseNote

mov     imm, reg
mov     imm32, reg

Note

A 16-bit mov instruction is replaced by a 48-bit mov instruction.

(c)

Relative expression having !label or %label, or that having $label for a label with a definition in the sdata/sbss-attribute section

mov     !label, reg
movea   !label, r0, reg
mov     %label, reg
movea   %label, r0, reg
mov     $label, reg
movea   $label, r0, reg

(d)

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

mov     #label, reg
mov     #label, reg
mov     label, reg
mov     label, reg
mov     $label, reg
mov     $label, reg

Note

A 16-bit mov instruction is replaced by a 48-bit mov instruction.