The MOV instruction only supports integers from -257 to 65536.
This is because of how the instructions are encoded within 4 bytes.
You can use a relative load with LDR R#, [PC, #offset]
i.e.
ldr r0, [pc, 0] ; note that due to pipelining PC is always the current instruction + 8, so that's why...