The ARM microprocessor has 32 bit instructions and 32 bit registers. Explain why this means that immediate addressing cannot be used to load a register with a 32 bit constant.
The range of immediate values allowed is given by N×2^ (2M). Where N is a value from 0 to 255 (8 bits) and M is a value from 0 to 15 (4 bits). Determine if the following instructions are allowed or not and, if allowed, give the values of N and M. (Answer can be in any base.)
MOV r4, #0x000001F4 ; put the number 500 into register r4
MOV r8, #0x000030C0 ; put the number 12,480 into register r8
MOV r9, #0x000030D4 ; put the number 12,500 into register r9
MOV r7, #0xEFC00000 ; put the number 4,022,337,536 into r7
ADD r10, r5, #0x30400000 ; add 809,500,672 to r5, put sum in r10