MOV instruction always assembled as MOVW
There are two versions of the MOV instruction. An instruction like
using an 8-bit constant should assemble into a 16-bit instruction, while an instruction like
MOVW R0,10000 // May also be written as MOV.W R0,1000
assembles into a 32-bit instruction in order to be able to use a 16-bit constant.
However, I find that the first example above generates:
which is a 32-bit instruction.
Shouldn't the assembler use the smallest possible representation?
Can you help with this problem?
Provide an answer of your own, or ask Dan Lewis for more information if necessary.